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

时间:2012-10-20 12:47:14

标签: objective-c cordova

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

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

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

1 个答案:

答案 0 :(得分: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);
   }

地理定位的成功:

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

用于计算用户的位置是否接近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++;
});
  }