靠近某个位置的Phonegap iPhone应用程序通知

Ela*_*hmi 2 objective-c cordova

我正在使用Cordova为iPhone创建一个应用程序.我对objective-c不太满意,但之前已经写了一些插件,所以如果需要的话我也可以.

我有一系列商店的位置(gps线)列表.我想在应用程序的用户靠近其中一个位置时弹出通知.

phonegap支持这个吗?如果没有,有人能指出我在Objective-c中实现这个目标的正确方向吗?

mra*_*888 5

是的,它确实!首先,你应该有一个watchPosition用于获取用户移动时的新位置.

有关watchPosition的更多信息,请在此处查看:

http://docs.phonegap.com/en/2.1.0/cordova_geolocation_geolocation.md.html#geolocation.watchPosition

然后,根据用户与感兴趣点的接近半径,您应该使用弹出窗口进行证明.

编辑

如果你首先使用谷歌地图,你应该初始化地图并调用函数geolocalization,然后使用函数calculateNearLocation查看POI数组,如果距离小于1Km,例如.如果是,它会发出振动警报.

使用谷歌地图代码将是这样的:

  var watchID = null;
  function geolocalization()
  {
      //Each 3 seconds looks new position
  var options = { frequency: 3000 };
  watchID = navigator.geolocation.watchPosition(onSuccessG, onErrorG, options);
   }
Run Code Online (Sandbox Code Playgroud)

关于地理定位的成功:

  function onSuccessG(position) {
   var mipos = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
calculateNearLocation(mipos);
 }
Run Code Online (Sandbox Code Playgroud)

用于计算用户的位置是否接近POI:

  function calculateNearLocation(mipos) {
   var indice = 0;
   $.each(listPOI, function() {

    var distanceBetween = Math.ceil(google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(listPOI[indice].latitudes, listPOI[indice].longitudes), mipos));

    if(distanceBetween < 10000) {
        navigator.notification.vibrate(2000);

    }
    indice++;
});
  }
Run Code Online (Sandbox Code Playgroud)