Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month 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 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-12T22:18:50.000Z (10 months ago)
- Last Synced: 2024-04-13T21:58:12.118Z (8 months 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/))
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