2017-10-09 18 views
1

私はこのマップに角とマウントされたマーカーでGoogleマップを持っています。 マーカーを地図とともに移動したい。移動の瞬間に、マーカーはデフォルトの位置にあります。マーカーを移動して現在の位置を取得する効果を得るにはどうすればよいですか?Angularjsマーカーで地図を移動し、現在のマーカーを取得する

マイコード:

<div class="col-lg-5 col-md-5 col-sm-12 col-xs-10 col-lg-offset-2 col-md-offset-1" style="padding: 0"> 
       <div ng-if="!mapLoaded" map-lazy-load="https://maps.google.com/maps/api/js" map-lazy-load-params="{{map.url}}" style="width: 100%;height:100%"> 
        <div ng-map center="{{map.center.latitude}},{{map.center.longitude}}" zoom="{{map.zoom}}" styles="{{ map.styles}}"> 
        </div> 
       </div> 
       <div ng-if="mapLoaded" class="map-dialog-container"> 
        <div ng-map center="{{map.center.latitude}},{{map.center.longitude}}" zoom="{{map.zoom}}" styles="{{ map.styles}}"> 
        </div> 
       </div> 
      </div> 

これは私のコントローラである:マップのcenter_changedイベントのリスナーを設定し

$scope.map = { 
       zoom: 8, 
       center: { 
        latitude: 52.348763181988105, 
        longitude: 20.928955078125 
       }, 
       url: 'https://maps.googleapis.com/maps/api/js?key=XXX&callback=initMap', 

       NgMap.getMap().then(function (map) 
      { 
       var location = [52.348763181988105,20.928955078125]; 
       var infowindow = new google.maps.InfoWindow(); 

     var markerIcon = { 
      url: 'resource/img/mapin.png', 
      size: new google.maps.Size(32, 41), 
      anchor: new google.maps.Point(0, 41), 
      scaledSize: new google.maps.Size(32, 41), 
      labelOrigin: new google.maps.Point(16, 55) 
     }; 

       var latLng = new google.maps.LatLng(location[0],location[1]); 
       var newMarker = new google.maps.Marker({ 
       position: latLng, 
       map  : map, 
       icon : markerIcon 
      }); 
         console.log(newMarker.map); 
      }); 
+0

マーカーは常にであることが必要地図の中心?あるいは、それは常に最初の「デフォルト」の位置と同じ相対位置にあるでしょうか? – dev8080

+0

はい、マーカーは常にマップの中央になければなりません。残念なことに、マーカーは1つの位置にとどまります。 –

答えて

0

。マーカーの位置を地図の中心に設定します。

あなたのJSにこれを追加:マーカ位置については

map.addListener('center_changed', function() { 

     newMarker.setPosition(map.getCenter()); 

    }); 

を、あなたができる:

特に
console.log(newMarker.getPosition()); 

以上:

console.log("Lat:" + newMarker.getPosition().lat() + 
       "Lng:" + newMarker.getPosition().lng()); 
+0

マーカーは地図と一緒に動かない –

+0

それはうまくいくはずです。あなたのコードでjsfiddleを作成できますか? – dev8080

+0

https://jsfiddle.net/maTeX77/o52smuhd/1/ –

関連する問題