2016-03-25 5 views
0

Я встроили Google карты в моем веб-приложения с помощью:нг-карты запись широта и долгота

<div> 
 
\t <map ng-transclude class="google-map" center="map.center" options="map.options"> 
 
\t <marker position="marker.position" decimals="marker.decimals" options="marker.options" on-click="updatelatlong()"></marker></map> 
 
\t </div>

И контроллер:

$scope.map = { 
 
\t \t center: [39, -121], 
 
\t \t options: function() { 
 
\t \t \t return { 
 
\t \t \t \t streetViewControl: false, 
 
\t \t \t \t scrollwheel: false 
 
\t \t \t } 
 
\t \t } 
 
\t }; 
 

 
\t $scope.marker = { 
 
\t \t position: [39, -121], 
 
\t \t decimals: 4, 
 
\t \t options: function() { 
 
\t \t \t return { draggable: true }; 
 
\t \t }, 
 
\t \t events:{ 
 
\t \t \t drag:function(e, p, map, points) { 
 
\t \t \t \t console.log("dragged....."); 
 
\t \t \t } 
 
\t \t } 
 
\t };

Я пытаюсь g для записи долготы широты, связанной с новым перетаскиваемым маркером. Однако управление не приходит к прослушивателю событий перетаскивания.

+0

Может быть, вы никогда не установить слушателя на маркер? Вы используете свойства position, decimals и options, связывая их с атрибутами, и у вас есть событие onClick для несуществующей функции, но вы ничего не делаете с свойством events. Я не знаком с Google Maps, но это похоже на проблему. –

+0

Atleast drag должно быть напечатано в консольном журнале справа ... и функция updatelatlong определена..control не достигает там –

+0

Я так не думаю. Вы будете регистрироваться только в том случае, если выполняется $ scope.marker.events.drag, и я не вижу, где вы предоставляете это на своей карте. Глядя на https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/docs/marker.html и https://developers.google.com/maps/documentation/javascript/reference#Marker, я думаю, вы хотите поместить функцию перетаскивания в 'on-drag =" "' в теге 'marker'. –

ответ

0

решаемые его, как показано ниже:

<map ng-transclude class="google-map" center="map.center" options="map.options"> 
 
\t <!--<marker position="marker.position" decimals="marker.decimals" options="marker.options"></marker>--> 
 
\t \t <points coords="points.coords" options="points.options" events="points.events" decimals="points.decimals"></points></map> 
 
\t </div>

Контроллер:

$scope.map = { 
 
\t \t center: [39, -121], 
 
\t \t options: function() { 
 
\t \t \t return { 
 
\t \t \t \t streetViewControl: false, 
 
\t \t \t \t scrollwheel: false 
 
\t \t \t } 
 
\t \t } 
 
\t }; 
 

 
$scope.points = { 
 
\t \t coords: [ 
 
\t \t \t [47,-122] 
 
\t \t ], 
 
\t \t options: function(coords, properties, i, map) { 
 
\t \t \t return { 
 
\t \t \t \t draggable: true 
 
\t \t \t } 
 
\t \t }, 
 
\t \t events: { 
 
\t \t \t drag: function(e, point, map, points) { 
 
\t \t \t \t $scope.longitude=e.latLng.lng(); 
 
\t \t \t \t $scope.latitude=e.latLng.lat(); 
 
\t \t \t } 
 
\t \t }, 
 
\t \t decimals: 3 
 
\t };

Смежные вопросы