https://github.com/Cap-go/capacitor-nativegeocoder
Capacitor plugin for native forward and reverse geocoding
https://github.com/Cap-go/capacitor-nativegeocoder
android capacitor capacitor-plugin geocoding swift
Last synced: 12 months ago
JSON representation
Capacitor plugin for native forward and reverse geocoding
- Host: GitHub
- URL: https://github.com/Cap-go/capacitor-nativegeocoder
- Owner: Cap-go
- License: mit
- Created: 2022-06-29T10:58:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-12T22:18:50.000Z (about 2 years ago)
- Last Synced: 2024-04-13T21:58:12.118Z (almost 2 years ago)
- Topics: android, capacitor, capacitor-plugin, geocoding, swift
- Language: Java
- Homepage:
- Size: 643 KB
- Stars: 19
- Watchers: 2
- Forks: 4
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-capacitorjs - @capgo/nativegeocoder - Native forward and reverse geocoding. (Plugins / Community Plugins)
- awesome-capacitor - Native Geocoder - Native forward and reverse geocoding. ([Capgo plugins](https://capgo.app/) / Location & Navigation)
README
➡️ 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
```bash
npm install @capgo/nativegeocoder
npx cap sync
```
then import this into your code:
```javascript
import { NativeGeocoder } from '@capgo/nativegeocoder';
```
## iOS
Apple requires privacy descriptions to be specified in `Info.plist` for location information:
- `NSLocationAlwaysAndWhenInUseUsageDescription` (`Privacy - Location Always Usage Description`)
- `NSLocationWhenInUseUsageDescription` (`Privacy - Location When In Use Usage Description`)
Read about [Configuring `Info.plist`](https://capacitorjs.com/docs/ios/configuration#configuring-infoplist) in the [iOS Guide](https://capacitorjs.com/docs/ios) 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`:
```xml
```
## 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](https://github.com/sebastianbaar) and his work on [cordova-plugin-nativegeocoder](https://github.com/sebastianbaar/cordova-plugin-nativegeocoder) what he made was very inspiring
