Coder Social home page Coder Social logo

sebastianbaar / cordova-plugin-nativegeocoder Goto Github PK

View Code? Open in Web Editor NEW
60.0 5.0 32.0 1.04 MB

Cordova plugin for native forward and reverse geocoding

License: MIT License

Java 49.15% Swift 46.36% JavaScript 4.49%
cordova-plugin cordova-android cordova-android-plugin cordova-ios cordova-ios-plugin geocoder ios android swift reversegeocode cordova-plugin-nativegeocoder

cordova-plugin-nativegeocoder's Introduction

Cordova NativeGeocoder plugin

Call nativegeocoder.reverseGeocode() to transform a latitude and longitude into an address or nativegeocoder.forwardGeocode() to transform an address into a latitude and longitude using iOS CoreLocation service and Android Geocoder class.

No need for creating API keys or querying external APIs

Please read Known Issues before posting an issue! Thank you! ๐Ÿ˜

Ionic

This plugin is also available for Ionic awesome-cordova-plugins & Capacitor.

Installation

cordova plugin add cordova-plugin-nativegeocoder

For iOS Cordova iOS version >5.0.0 is required.

Configuration

You can also configure the following variable to customize the iOS location plist entry

  • LOCATION_WHEN_IN_USE_DESCRIPTION for NSLocationWhenInUseUsageDescription (defaults to "Use geocoder service")

Supported Platforms

  • iOS
  • Android

API

.reverseGeocode(successCallback, errorCallback, latitude, longitude, options);

Reverse geocode a given latitude and longitude to find location address.

Parameters

Parameter Type Default Description
success Function Success callback (with Array)
error Function Error callback.
latitude Number The latitude.
longitude Number The longtitude.
options Object Optional. Is called when the api encounters an error while initializing the context.

All available options attributes:

Attribute Type Default Comment
useLocale Boolean true Optional. Only works for Android and iOS 11.0+.
defaultLocale String Optional. E.g.: 'fa-IR' or 'de_DE'; works only for Android and iOS 11.0+.
maxResults Number 1 Optional. Min value: 1, max value: 5.

Array

Conforms to Apple's and Android's geocoder's result arrays.

Value Type
latitude String
longitude String
countryCode String
postalCode String
administrativeArea String
subAdministrativeArea String
locality String
subLocality String
thoroughfare String
subThoroughfare String
areasOfInterest Array<String>
addressLines (Android only) Array<String>

Example

nativegeocoder.reverseGeocode(success, failure, 52.5072095, 13.1452818, { useLocale: true, maxResults: 1 });

function success(result) {
  var firstResult = result[0];
  console.log("First Result: " + JSON.stringify(firstResult));
}

function failure(err) {
  console.log(err);
}

.forwardGeocode(success, error, addressString, options)

Forward geocode a given address to find coordinates.

Parameters

Parameter Type Default Description
success Function Success callback (with Array)
error Function Error callback.
addressString String The address to be geocoded.
options Object Optional. Is called when the api encounters an error while initializing the context.

All available options attributes:

Attribute Type Default Comment
useLocale Boolean true Optional. Only works for Android and iOS 11.0+.
defaultLocale String Optional. E.g.: 'fa-IR' or 'de_DE'; works only for Android and iOS 11.0+.
maxResults Number 1 Optional. Min value: 1, max value: 5.

Array

Conforms to Apple's and Android's geocoder's result arrays.

Value Type
latitude String
longitude String
countryCode String
postalCode String
administrativeArea String
subAdministrativeArea String
locality String
subLocality String
thoroughfare String
subThoroughfare String
areasOfInterest Array<String>
addressLines (Android only) Array<String>

Example

nativegeocoder.forwardGeocode(success, failure, "Berlin", { useLocale: true, maxResults: 1 });

function success(coordinates) {
  var firstResult = coordinates[0];
  console.log("The coordinates are latitude = " + firstResult.latitude + " and longitude = " + firstResult.longitude);
}

function failure(err) {
  console.log(err);
}

Known Issues

Android

Geocoder not working

Errors like Geocoder:getFromLocationName Error: grpc failed, Geocoder is not present on this device/emulator., Geocoder [...] Error or Geocoder Service not available.

Why?: The plugin checks for Geocoder.isPresent() (Android docs). One reason for Geocoder not working on a device could be that you are running your app on an emulator or on a device without Google Play Services. But Geocoder API "[...] requires a backend service that is not included in the core android framework".

Any workaround?: Yes, install Google Play services. Open SDK Tools > Tab SDK Tools > install Google Play services.

iOS

...

Thank you โค๏ธ

Yes you! Thank you very much for using cordova-plugin-nativegeocoder. If you have any feedback or run into issues using the plugin, please file an issue on this repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.