0

我正在尝试使用精灵图像作为谷歌地图标记,但它不显示。这是我正在使用的代码

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

4

2 回答 2

0

乍一看,可能是您设置了错误的坐标?LatLng 通常表示为:54.621790812770513、-3.562549943618061。

您指定的位置 (28, 32) 是沙特阿拉伯的一个点,距离任何地方 100 英里,除非这是您的意图?

另外,您没有将地图集中在该点上,因此它可以显示(在沙特阿拉伯),而您的地图以其他地方为中心?

如果有人解决了您的问题(尽管我可能没有),也请接受答案。只有礼貌。

于 2012-12-06T11:01:08.493 回答
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));

于 2012-12-10T06:45:06.470 回答