我正在尝试创建一个简单的Google Maps API,允许最终用户在地图上添加一些标记。
问题是,虽然我可以在programmaticaly级别添加标记,但标记不会在地图上显示。
这是在地图上添加标记的代码:
for(var i = 0; i < points.length; i++)
{
var markerLatLng = new google.maps.LatLng(points[i].lat(), points[i].lng());
var marker = new google.maps.Marker(
{
position : markerLatLng,
map : map,
zIndex : (10000 + i),
icon : {
url : 'http://www.saronikoscity.gr/site/images/ico_web.gif',
size : new google.maps.Size(16, 16, 'px', 'px')
}
}
);
markerRegistry.push(marker);
}
在这里,您可以看到我的意思的实例:http://jsfiddle.net/merianos/n4wjw/
那可能有什么问题?你看错了吗?
注意:我尝试在地图上添加一个标记,在这种情况下,它正常工作。这个问题伴随着多个标记。
亲切的问候
答案 0 :(得分:2)
您只需定义var map
两次,请查看here以获取有效示例。
答案 1 :(得分:0)
此代码适用于我
var markers = [
['Bondi Beach', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],
['Manly Beach', -33.80010128657071, 151.28747820854187],
['Maroubra Beach', -33.950198, 151.259302]
];
function initializeMaps() {
var latlng = new google.maps.LatLng(-33.92, 151.25);
var myOptions = {
zoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
var map = new google.maps.Map(document.getElementById("myMap"),myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i][1], markers[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(markers[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
jQuery(document).ready(
function($)
{
if($('#myMap').length > 0)
{
initializeMaps();
}
}
);