【发布时间】:2025-12-13 18:35:02
【问题描述】:
我正在尝试使用 AngularJs 和 Google Maps API 在地图上显示标记。但是,由于某种原因,我无法显示标记。我不确定我是否从数据库中提取了错误的数据,但如果有人可以帮助我,那就太好了!
.controller('MapCtrl', ['$scope', '$state', '$cordovaGeolocation', '$ionicSideMenuDelegate', '$ionicModal', 'LocationService', function($scope, $state, $cordovaGeolocation, $ionicSideMenuDelegate, $ionicModal, LocationService) {
$scope.locations = [];
LocationService.getLocations().then(function (result) {
$scope.locations = result.data;
});
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(40.0000, -98.0000),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
$scope.map = new google.maps.Map(document.getElementById('map'), mapOptions);
$scope.markers = [];
var infoWindow = new google.maps.InfoWindow();
var createMarker = function (info){
var marker = new google.maps.Marker({
map: $scope.map,
position: new google.maps.LatLng(info.lat, info.long),
title: info.name
});
marker.content = '<div class="infoWindowContent">' + info.name + '</div>';
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent('<h2>' + marker.title + '</h2>' + marker.content);
infoWindow.open($scope.map, marker);
});
$scope.markers.push(marker);
}
for (i = 0; i < $scope.locations.length; i++){
createMarker($scope.locations[i]);
}
$scope.openInfoWindow = function(e, selectedMarker){
e.preventDefault();
google.maps.event.trigger(selectedMarker, 'click');
}
}])
.service('LocationService', function ($http, Backand) {
var baseUrl = '/1/objects/';
var objectName = 'locations/';
function getUrl() {
return Backand.getApiUrl() + baseUrl + objectName;
}
function getUrlForId(id) {
return getUrl() + id;
}
getLocations = function () {
return $http.get(getUrl());
};
return {
getLocations: getLocations
}
})
数据如何存储在数据库中
{
"id": 1,
"name": "Ballentine Hall",
"lat": 39.165935,
"long": -86.521287
}
【问题讨论】:
-
如果您将
console.log(info)放入您的 createMarker 函数中,那么一次迭代的示例是什么样的? -
您的代码到jsfiddle 的这种无角度端口似乎有效 - 也许您应该检查您的数据?
-
我认为你是对的,我没有得到数据。我尝试将
console.log(info)放入 createMarker 函数中,但没有任何反应。但是,当我将console.log($scope.locations)放在函数之外并得到一个空列表时
标签: javascript angularjs google-maps google-maps-api-3