谷歌地图图像标记未正确放置在精灵中

时间:2012-12-06 10:40:51

标签: javascript google-maps-api-3 sprite

我正在尝试将精灵图片用于谷歌地图标记,但它不会显示。这是我正在使用的代码

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.只有地图显示没有标记。任何帮助将不胜感激

2 个答案:

答案 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));