Phonegap/Cordova 地理定位提醒特定位置附近有啥

Posted

技术标签:

【中文标题】Phonegap/Cordova 地理定位提醒特定位置附近有啥【英文标题】:Phonegap/Cordova geolocation alert what near a specific locationPhonegap/Cordova 地理定位提醒特定位置附近有什么 【发布时间】:2019-03-26 19:25:50 【问题描述】:

我需要一些指导来了解当我的位置位于指定位置附近时如何触发警报。

我想那时会使用谷歌地图和地理位置,但我不确定。

我也希望能够显示一些代码,但是在进行了无数次谷歌搜索后,我找不到任何东西,也不知道要查找什么。

我将使用 phonegap / cordova。

谁能指引我正确的方向?enter code here

【问题讨论】:

【参考方案1】:

听起来您正在寻找像这样的地理围栏插件:https://github.com/cowbell/cordova-plugin-geofence

这将让您监控您的设备何时进入和退出您设置的自定义地理围栏/位置区域。

使用 cordova plugin add cordova-plugin-geofence 将此添加到您的项目中,并按照其自述文件中的使用指南进行操作。

【讨论】:

【参考方案2】:

//Convert Destination Address to lat lng values
     var specificlocation = 
      lat: -13.26589,
      lng: 98.365297
    

    function onDeviceReady() 
        //onDeviceReaddy
        navigator.geolocation.getCurrentPosition(displayAndWatch, locError);
    


    // user Current Position
    function displayAndWatch(position) 
        setCurrentPosition(position);
        watchCurrentPosition();
    

    function setCurrentPosition(pos) 
        var image = 'img/ic_CurrentLocationmap.png';

        currentPositionMarker = new google.maps.Marker(
            icon: image,
            map: map,
            position: new google.maps.LatLng(
                pos.coords.latitude,
                pos.coords.longitude
            ),
            title: "Current Location"
        );
        map.panTo(new google.maps.LatLng(
            pos.coords.latitude,
            pos.coords.longitude
        ));
    

 //Watch User/phone current location
    function watchCurrentPosition() 
        var positionTimer = navigator.geolocation.watchPosition(
            function (position) 
                setMarkerPosition(
                    currentPositionMarker,
                    position
                );
            );
    

    function setMarkerPosition(marker, position) 
        marker.setPosition(
            new google.maps.LatLng(
                position.coords.latitude,
                position.coords.longitude)
        );
        var center = 
            lat: position.coords.latitude,
            lng: position.coords.longitude
        
        map.setCenter(center);

       //Check distance between specificlocation and user/phone current location
        var distance = DistanceBetweenTwoPoints(center.lat, center.lng, specificlocation.lat,
            specificlocation.lng, "K")

        //with in 100 Meters
        if (distance < 0.1) 
            navigator.notification.confirm(
                'You are Reached specificlocation Address', // message
                onConfirmReached, //Callback
                'AppName', // title
                ['No', 'Yes'] // buttonLabels
            );
        
    function locError(error) 
        // the current position could not be located
    

    function onConfirmReached(buttonIndex) 
        if (buttonIndex == 2) 
            //Alert result
        
    

 //Find Distance between Two coordinations 
    function DistanceBetweenTwoPoints(lat1, lon1, lat2, lon2, unit) 
        try 
            unit = "K"
            var radlat1 = Math.PI * lat1 / 180
            var radlat2 = Math.PI * lat2 / 180
            var radlon1 = Math.PI * lon1 / 180
            var radlon2 = Math.PI * lon2 / 180
            var theta = lon1 - lon2
            var radtheta = Math.PI * theta / 180
            var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(
                radtheta);
            dist = Math.acos(dist)
            dist = dist * 180 / Math.PI
            dist = dist * 60 * 1.1515
            //Calculate Kilometer
            if (unit == "K") 
                dist = dist * 1.609344
            
            //Calculate Miles
            if (unit == "N") 
                dist = dist * 0.8684
            
            return dist;
         catch (err) 
            console.log(err);
        
    

【讨论】:

以上是关于Phonegap/Cordova 地理定位提醒特定位置附近有啥的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google 地图进行地理定位无法使用 PhoneGap

适用于 Android 的 Phonegap 本地通知插件

将横向限制在特定页面、jquery mobile、iOS、phonegap/cordova

PhoneGap/Cordova 将 GeoLocation 从 localStorage vars 推送到 MySQL

iOS:提醒用户特定地理位置区域(纬度,经度)

PhoneGap/Cordova ExternalScreen 插件状态“外部 Web 视图不可用”