2

我正在使用 Cordova 为 iPhone 创建一个应用程序。我对objective-c不是很好,但之前写过一些插件,所以如果需要我可以。

我有连锁店的位置列表(gps 线)。每当应用程序的用户靠近某个位置时,我想弹出一个通知。

phonegap 支持这个吗?如果没有,谁能指出我在objective-c中实现这一点的正确方向?

4

1 回答 1

5

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

有关 watchPosition 的更多信息,请参见此处:

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

然后,根据用户与兴趣点的接近半径,您应该使用弹出窗口进行通知。

编辑

如果你首先使用谷歌地图,你应该初始化地图并调用函数 geolocalization,然后如果距离小于 1Km,则使用函数 calculateNearLocation 在 POI 数组中查找。如果是这样,它会通过振动发出警报。

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

  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++;
});
  }
于 2012-10-20T12:55:44.670 回答