@capgo/nativegeocoder

January 31, 2026 · View on GitHub

Capgo - Instant updates for capacitor

➡️ Get Instant updates for your App with Capgo

Missing a feature? We’ll build the plugin for you 💪

Capacitor plugin for native forward and reverse geocoding

Documentation

The most complete doc is available here: https://capgo.app/docs/plugins/nativegeocoder/

Compatibility

Plugin versionCapacitor compatibilityMaintained
v8.*.*v8.*.*
v7.*.*v7.*.*On demand
v6.*.*v6.*.*
v5.*.*v5.*.*

Note: The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.

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:

  • NSLocationAlwaysAndWhenInUseUsageDescription (Privacy - Location Always Usage Description)
  • NSLocationWhenInUseUsageDescription (Privacy - Location When In Use Usage Description)

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 example formatted_address is not available in web implementation, as it's not available in the native API.

API

reverseGeocode(...)

reverseGeocode(options: ReverseOptions) => Promise<{ addresses: Address[]; }>

Convert latitude and longitude to an address

ParamType
optionsReverseOptions

Returns: Promise<{ addresses: Address[]; }>

Since: 0.0.1


forwardGeocode(...)

forwardGeocode(options: ForwardOptions) => Promise<{ addresses: Address[]; }>

Convert an address to latitude and longitude

ParamType
optionsForwardOptions

Returns: Promise<{ addresses: Address[]; }>

Since: 0.0.1


getPluginVersion()

getPluginVersion() => Promise<{ version: string; }>

Get the native Capacitor plugin version

Returns: Promise<{ version: string; }>


Interfaces

Address

PropType
latitudenumber
longitudenumber
countryCodestring
countryNamestring
postalCodestring
administrativeAreastring
subAdministrativeAreastring
localitystring
subLocalitystring
thoroughfarestring
subThoroughfarestring
areasOfIntereststring[]

ReverseOptions

PropTypeDescription
latitudenumberlatitude is a number representing the latitude of the location.
longitudenumberlongitude is a number representing the longitude of the location.
useLocalebooleanLocalise the results to the given locale.
defaultLocalestringlocale is a string in the format of language_country, for example en_US.
maxResultsnumberMax number of results to return.
apiKeystringOnly used for web platform to use google api
resultTypestringOnly used for web platform to use google api

ForwardOptions

PropTypeDescription
addressStringstringaddress is a string of the address to be geocoded.
useLocalebooleanLocalise the results to the given locale.
defaultLocalestringlocale is a string in the format of language_country, for example en_US.
maxResultsnumberMax number of results to return.
apiKeystringOnly used for web platform to use google api

Thanks

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