2016-11-18 2 views
0

Я работаю над проектом, которому необходимо разместить дополнительный маркер на основе latlng, извлеченного из базы данных. Загрузка карты успешно, но как-то я просто не могу сделать маркерное шоу на карте.Angularjs Google Map Добавить маркеры

Вот мой код

JAVASCRIPT

var app = angular.module('myApp', ['ngResource']); 

app.service('Map', function($q) { 
    this.init = function() { 
     navigator.geolocation.getCurrentPosition(function(position) { 
     var MapOptions = { 
      center: new google.maps.LatLng(38.431934, 141.309402), 
      zoom: 16, 
      disableDefaultUI: true, 
      draggable: true, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
     }; 
     this.map = new google.maps.Map(document.getElementById("map"), MapOptions); 
     this.places = new google.maps.places.PlacesService(this.map); 
     }); 
    } 
}); 

app.controller('MainCtrl', function($scope, $resource, Map) { 
    $scope.fetchdata = {}; 
    var Fetchdata = $resource('http://localhost:8080/fetchnote'); 
    Fetchdata.query(function(results) { 
    $scope.fetchdata = results; 
    angular.forEach($scope.fetchdata, function(value, index) { 
     var lat = value.latitude; 
     var lng = value.longitude; 
     addtomap(lat, lng) 
    }) 
    }) 

    function addtomap(lat, lng, icon) { 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(lat, lng), 
     map: Map.map 
    }); 
    } 
    Map.init(); 
}); 

Есть что-нибудь я забыл добавить или ??

+0

Вы можете попробовать позвонить addtomap (лат, LNG) функцию после Map.init –

+0

попробовать это, но все тот же –

ответ

0

увидеть это http://jsfiddle.net/pc7Uu/3153/

Map.init(); 
angular.forEach($scope.fetchdata, function(value, index) { 
    //alert(value); 
    var lat = value.latitude; 
    var lng = value.longitude; 
    addtomap(lat, lng) 
}); 

Вы называли свои маркера до карты инициализации, замените значения ваших значений сервера и он должен работать.

Надежда это решает вашу проблему

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