npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nativescript-geolocation

v5.1.0

Published

Provides API for getting and monitoring location for NativeScript app.

Downloads

114

Readme

NativeScript Geolocation apple android

npm npm Build Status

Geolocation plugin to use for getting current location, monitor movement, etc.

Installation

In Command prompt / Terminal navigate to your application root folder and run:

tns plugin add nativescript-geolocation

Usage

The best way to explore the usage of the plugin is to inspect the demo app in the plugin's root folder. In demo folder you can find the usage of the plugin for TypeScript non-Angular application. Refer to demo/app/main-page.ts.

In short here are the steps:

Import the plugin

TypeScript

import * as geolocation from "nativescript-geolocation";
import { Accuracy } from "tns-core-modules/ui/enums"; // used to describe at what accuracy the location should be get

Javascript

var geolocation = require("nativescript-geolocation");

Request permissions

geolocation.enableLocationRequest();

Call plugin methods

// Get current location with high accuracy
geolocation.getCurrentLocation({ desiredAccuracy: Accuracy.high, maximumAge: 5000, timeout: 20000 })

API

Properties

Location

| Property | Default | Description | | --- | --- | --- | | latitude | - | The latitude of the geolocation, in degrees. | | longitude | - | The longitude of the geolocation, in degrees. | | altitude | - | The altitude (if available), in meters above sea level. | | horizontalAccuracy | - | The horizontal accuracy, in meters. | | verticalAccuracy | - | The vertical accuracy, in meters. | | speed | - | The speed, in meters/second over ground. | | timestamp | - | The time at which this location was determined. |

Options

| Property | Default | Description | | --- | --- | --- | | desiredAccuracy? | Accuracy.high | This will return the finest location available but use more power than any option. Accuracy.any is considered to be about 100 meter accuracy. Using a coarse accuracy such as this often consumes less power. | | updateDistance | No filter | Update distance filter in meters. Specifies how often to update the location. Read more in Apple document and/or Google documents | | updateTime | 1 minute | Interval between location updates, in milliseconds (ignored on iOS). Read more in Google document.| | minimumUpdateTime | 5 secs | Minimum time interval between location updates, in milliseconds (ignored on iOS). Read more in Google document.| | maximumAge | - | How old locations to receive in ms. | | timeout | 5 minutes | How long to wait for a location in ms. | | iosAllowsBackgroundLocationUpdates | false | If enabled, UIBackgroundModes key in info.plist is required (check the hint below). Allow the application to receive location updates in background (ignored on Android). Read more in Apple document | | iosPausesLocationUpdatesAutomatically | true | Allow deactivation of the automatic pause of location updates (ignored on Android). Read more in Apple document| | iosOpenSettingsIfLocationHasBeenDenied | false | Argument on the enableLocationRequest. If true, the settings app will open on iOS so the user can change the location services permission. |

If iosAllowsBackgroundLocationUpdates is set to true, the following code is required in the info.plist file:

<key>UIBackgroundModes</key>
<array>
   <string>location</string>
</array>

Methods

| Method | Returns | Description | | --- | --- | --- | | getCurrentLocation(options: Options) | Promise | Get current location applying the specified options (if any). Since version 5.0 of the plugin, it will use requestLocation API for devices using iOS 9.0+. In situation of poor or no GPS signal, but available Wi-Fi it will take 10 sec to return location. | | watchLocation(successCallback: successCallbackType, errorCallback: errorCallbackType, options: Options) | number | Monitor for location change. | | clearWatch(watchId: number) | void | Stop monitoring for location change. Parameter expected is the watchId returned from watchLocation. | | enableLocationRequest(always?: boolean) | Promise<void> | Ask for permissions to use location services. The option always is applicable only for iOS. For a custom prompt message on IOS, the following keys are required. NSLocationAlwaysUsageDescription, NSLocationUsageDescription and NSLocationWhenInUseUsageDescription Read more about its usage . | | isEnabled | Promise<boolean>| Resolves true or false based on the location services availability. | | distance(loc1: Location, loc2: Location) | number | Calculate the distance between two locations. Returns the distance in meters. |

Known Issues

Version Conflicts – Google Play Services

If you have installed multiple plugins that use the Google Play Services you might run into version conflicts. For example, you may encounter the error below when using the nativescript-google-maps-sdk plugin:

Cannot enable the location service. Error: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzbck;

In order to fix this you might pin the version number in your app/App_Resources/Android/before-plugins.gradle file (if the file does not exist, just create it):

android {  
  // other stuff here

  project.ext {
    googlePlayServicesVersion = "16.+"
  }
}

Contribute

We love PRs! Check out the contributing guidelines. If you want to contribute, but you are not sure where to start - look for issues labeled help wanted.

Get Help

Please, use github issues strictly for reporting bugs or requesting features. For general questions and support, check out Stack Overflow or ask our experts in NativeScript community Slack channel.