1

GoogleプレイスAPIで自分の所在地に気付き、以下の機能を適用しようとしています。これは非常に新しく、私はAPIとすべての機能が最初に動作するように私は間違っていることを確認していないが、私は私の場所を尋ねられた後、それは私がどこに動作している/GoogleプレイスAPIがgetCurrentPositionと連携しないIonicアプリのジオロケーション

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git 

App.jsあなたが位置を取得すると、あなたはマップの位置を更新

app.controller("MapController", function($scope, $ionicLoading) { 
 

 
    var map; 
 
    var infowindow; 
 
    var request; 
 
    var service; 
 
    var markers = []; 
 

 
    google.maps.event.addDomListener(window, 'load', function() { 
 

 
    var center = new google.maps.LatLng(42.3625441, -71.0864435); 
 
    var mapOptions = { 
 
     center:center, 
 
     zoom:16 
 
    }; 
 

 
    map = new google.maps.Map(document.getElementById('map'), mapOptions); 
 

 
    navigator.geolocation.getCurrentPosition(function(pos) { 
 
       map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)); 
 
       var myLocation = new google.maps.Marker({ 
 
        position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude), 
 
        map: map, 
 
        title: "My Location" 
 
       }); 
 
      }); 
 

 
    $scope.map = map; 
 

 
    request = { 
 
     location: center, 
 
     radius: 1650, 
 
     types: ['bakery', 'bar'] 
 
    }; 
 

 
    infowindow = new google.maps.InfoWindow(); 
 

 
    var service = new google.maps.places.PlacesService(map); 
 

 
    service.nearbySearch(request, callback); 
 

 
    function callback (results, status) { 
 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
 
     for (var i = 0; i < results.length; i++) { 
 
     createMarker(results[i]); 
 
     } 
 
    } 
 
    } 
 
    function createMarker(place){ 
 
    var placeLoc = place.geometry.location; 
 
    var marker = new google.maps.Marker({ 
 
     map: map, 
 
     position: place.geometry.location 
 
    }); 
 
    google.maps.event.addListener(marker, 'click', function(){ 
 
     infowindow.setContent(place.name); 
 
     infowindow.open(map,this); 
 
    }); 
 
    } 
 

 
}); 
 

 
});

答えて

0

ヴァジオロケーションプラグイン私はイオンのアプリに追加しましたしかし、あなたは新しい近隣検索を実行しません。

getCurrentPositionコールバックでservice.nearbySearch(...)に電話したいと思います。

createMarkerで作成したマーカーの配列をnearSearchコールバックに保存しておくと、新しい検索を実行するときに削除することができます(各古いマーカーにmarker.setMap(null)を呼び出すなど)。

関連する問題