Cap-go / capacitor-nativegeocoder

Capacitor plugin for native forward and reverse geocoding
MIT License
24 stars 4 forks source link
android capacitor capacitor-plugin geocoding swift

@capgo/nativegeocoder

Capgo - Instant updates for capacitor

➡️ Get Instant updates for your App with Capgo 🚀

Fix your annoying bug now, Hire a Capacitor expert 💪

Capacitor plugin for native forward and reverse geocoding

Install

npm install @capgo/nativegeocoder
npx cap sync

then import this into your code:

import { NativeGeocoder } from '@capgo/nativegeocoder';

iOS

Apple requires privacy descriptions to be specified in Info.plist for location information:

Read about Configuring Info.plist in the iOS Guide for more information on setting iOS permissions in Xcode The IOS implementation require internet

Android

This API requires the following permissions be added to your AndroidManifest.xml:

<!-- Geolocation API -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />

Web

This API requires a Google API key to be set in the apiKey field of the ForwardOptions or ReverseOptions interfaces.

There is no way to use this plugin on the web without a Google API key.

The return data is limited to the data available from the native API on the device, as exemple formatted_address is not available in web implementation, as it's not available in the native API.

API

* [`reverseGeocode(...)`](#reversegeocode) * [`forwardGeocode(...)`](#forwardgeocode) * [Interfaces](#interfaces) ### reverseGeocode(...) ```typescript reverseGeocode(options: ReverseOptions) => Promise<{ addresses: Address[]; }> ``` Convert latitude and longitude to an address | Param | Type | | ------------- | --------------------------------------------------------- | | **`options`** | ReverseOptions | **Returns:** Promise<{ addresses: Address[]; }> **Since:** 0.0.1 -------------------- ### forwardGeocode(...) ```typescript forwardGeocode(options: ForwardOptions) => Promise<{ addresses: Address[]; }> ``` Convert an address to latitude and longitude | Param | Type | | ------------- | --------------------------------------------------------- | | **`options`** | ForwardOptions | **Returns:** Promise<{ addresses: Address[]; }> **Since:** 0.0.1 -------------------- ### Interfaces #### Address | Prop | Type | | --------------------------- | --------------------- | | **`latitude`** | number | | **`longitude`** | number | | **`countryCode`** | string | | **`countryName`** | string | | **`postalCode`** | string | | **`administrativeArea`** | string | | **`subAdministrativeArea`** | string | | **`locality`** | string | | **`subLocality`** | string | | **`thoroughfare`** | string | | **`subThoroughfare`** | string | | **`areasOfInterest`** | string[] | #### ReverseOptions | Prop | Type | Description | | ------------------- | -------------------- | ------------------------------------------------------------------------ | | **`latitude`** | number | latitude is a number representing the latitude of the location. | | **`longitude`** | number | longitude is a number representing the longitude of the location. | | **`useLocale`** | boolean | Localise the results to the given locale. | | **`defaultLocale`** | string | locale is a string in the format of language_country, for example en_US. | | **`maxResults`** | number | Max number of results to return. | | **`apiKey`** | string | Only used for web platform to use google api | | **`resultType`** | string | Only used for web platform to use google api | #### ForwardOptions | Prop | Type | Description | | ------------------- | -------------------- | ------------------------------------------------------------------------ | | **`addressString`** | string | address is a string of the address to be geocoded. | | **`useLocale`** | boolean | Localise the results to the given locale. | | **`defaultLocale`** | string | locale is a string in the format of language_country, for example en_US. | | **`maxResults`** | number | Max number of results to return. | | **`apiKey`** | string | Only used for web platform to use google api |

Thanks

To @sebastianbaar and his work on cordova-plugin-nativegeocoder what he made was very inspiring