谷歌地图。标记图标图像消失和/或重叠

时间:2014-03-19 11:36:57

标签: javascript jquery google-maps google-maps-api-3 google-maps-markers

自上周一以来,我们在谷歌地图中遇到了问题。首先,我们使用自定义标记来显示按概念“分组”的搜索结果,这意味着我们显示带有文本的黄色框和带有计数的数字。如果你看一下这个图像,你会看到错误

(链接到http://imgur.com/sa1PvQo处的图片)

  • 在“Grierkenland(556)”或“Turkije(392)”标记处,没有任何图像(看到红色框)

  • 在“Cyrpus(43)”中,您将看到图像,而不是我放入每个标记,但只显示此标记。出现的图像也相互重叠了4个(截图中的数字1到4,原始图像是数字1,其余图像是相同的图像重叠)

我们一个月没有改变任何东西,我之前说过,从这个星期一起,标记的图像根本不起作用。我们的代码是:

创建图标。使用图像的url生成一个对象(pathPrefix是一个字符串,有些像“www.test.com”,例如):

 getLocIcon: function (markerLength) {
        var markerSize = 100; 
        if (markerLength > 18) {
            markerSize = 183;
        } else if (markerLength > 15) {
            markerSize = 146;
        } else if (markerLength > 13) {
            markerSize = 122;
        }

        icon =
            {
                url: priv.pathPrefix + '/images/googlemaps/loc-marker-' + markerSize + '.png',
                anchor: new google.maps.Point(15, 0),
                size: new google.maps.Size(markerSize, 22)
            };

        return icon;
    }, 

创建标记。使用所需的所有信息生成标记对象,包括“icon”对象:

createLinkMarker: function (gllPosition, strTargetText, strTargetLink, strMarkerToolTip) {
        var locationMarkerText = "<nobr>" + strMarkerToolTip + " (" + strTargetText + ")</nobr>";
        var otherOpts =
            {
                position: gllPosition,
                map: priv.googleMap,
                labelClass: "locationLabel",
                icon: priv.getLocIcon((strMarkerToolTip + " (" + strTargetText + ")").length),
                clickable: true,
                draggable: false,
                labelContent: locationMarkerText,
                //anchorPoint: new google.maps.Point(15, 0),
                title: strMarkerToolTip
            };
        var marker = new MarkerWithLabel(otherOpts);
        google.maps.event.addListener(marker, 'click', function () {
            location.href = strTargetLink;
        });

        return marker;
    },

要在Google地图中包含标记的其余代码(priv.googleMap是google地图的对象,而标记是从createLinkMarker函数获取的标记数组):

var markerMgrOptions = { maxZoom: priv.maxZoom, trackMarkers: false };
priv.markerManager = new MarkerManager(priv.googleMap, markerMgrOptions);
[ ... ]
priv.markerManager.clearMarkers();
priv.markerManager.addMarkers(markers, priv.minZoom, priv.maxZoom);
priv.markerManager.refresh();

你知道那里有新的或不好的做法吗?

提前致谢并致谢。

0 个答案:

没有答案