我正在尝试将精灵图片用于谷歌地图标记,但它不会显示。这是我正在使用的代码
function setMarkers(map, markers) {
var google_image = new google.maps.MarkerImage("http://www.mydomain.com/images/bodycss/pointer.png", new google.maps.Size(32, 32), new google.maps.Point(28, 32));
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
title: sites[0],
zIndex: sites[3],
html: sites[4],
icon: google_image
});
var contentString = "Some content";
google.maps.event.addListener(marker, "mouseover", function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
}
我给出的图像尺寸为32px * 32px,我给出的图像位置点是28和32.只有地图显示没有标记。任何帮助将不胜感激
答案 0 :(得分:0)
乍一看,你可能已经设置了错误的坐标? LatLng通常表示为:54.621790812770513,-3.562549943618061。
你指定的位置(28,32)是沙特阿拉伯的一个点,距离任何地方100英里,除非这是你的意图?
此外,您还没有将地图集中在该点上,因此当您的地图位于其他地方时,它可能会显示(在沙特阿拉伯)?
如果有人解决您的问题,请接受答案(尽管我可能没有)。只有礼貌。
答案 1 :(得分:0)
您的问题可能存在不同的问题。在讨论这个问题之前,很少有东西需要测试 -
在不使用自定义标记的情况下测试代码,并查看标记是否正确显示。如果这不起作用,则您的latlng值是错误的。如果有效,请检查您的站点是否可以访问您的精灵图像(有关错误,请参阅chrome或firebug控制台)。如果没有错误,那么您的位置点可能无法正确调整。
创建标记后再添加map.setCenter(marker.getPosition())
,以便在查看区域中显示。
更新 - 如果以上问题不是问题,请在下面的行中更改您的尺寸和点参数,直至找到标记。
var google_image = new google.maps.MarkerImage("http://www.mydomain.com/images/bodycss/pointer.png", new google.maps.Size(32, 32), new google.maps.Point(28, 32));