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

次に、関心のあるポイントへのユーザーの近さの半径に応じて、ポップアップで通知する必要があります。

編集

最初にGoogleマップを使用している場合は、マップを初期化して関数geolocalizationを呼び出す必要があります。次に、関数calculateNearLocationを使用して、距離が1Km未満の場合、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 に答える