我正在尝试使infoWindow显示在我正在处理的Google Maps集成中的正确位置(仅在图像的右上/左上角上方)。每当我尝试调整“ infoWindowAnchor”时,它似乎都不起作用?但是,“ iconAnchor”似乎按预期方式工作。我想知道以前是否有人遇到过类似情况?我正在使用自定义图标,但是即使当我恢复为Google提供的标准图标时,infoWindow仍然显示不正确(尾巴位于图标的中心,而不是放在图标的右上角)。

下面是我用来使所有这些正常工作的代码。重要信息在这里,但是我删除了一些在诊断时可能会妨碍您使用的其他功能。

$(document).ready(function() {

    var centerLatitude = 37.782112;
    var centerLongitude = -122.419281;
    var sanFran = new GLatLng(centerLatitude, centerLongitude);
    var startZoom = 12;
    var map;
    var icon;

    // Creates a default icon using our tuberent image
    var myIcon = new GIcon();
    myIcon.image = baseurl + 'my/imageFolder/markerFolder/image.png';
    myIcon.shadow = baseurl + 'my/imageFolder/markerFolder/shadow.png';
    myIcon.iconSize = new GSize(25,25);
    myIcon.shadowSize = new GSize(38,25);
    myIcon.iconAnchor = new GPoint(13,25);
    myIcon.infoWindowAnchor = new GPoint(13,0);
    myIcon.printImage = baseurl + 'my/imageFolder/markerFolder/printImage.gif';
    myIcon.mozPrintImage = baseurl + 'my/imageFolder/markerFolder/mozPrintImage.gif';
    myIcon.printShadow = baseurl + 'my/imageFolder/markerFolder/printShadow.gif';
    myIcon.transparent = baseurl + 'my/imageFolder/markerFolder/transparent.png';
    myIcon.imageMap = [22,0,22,1,22,2,21,3,21,4,21,5,21,6,21,7,23,8,24,9,24,10,22,11,22,12,22,13,22,14,22,15,22,16,22,17,22,18,22,19,22,20,22,21,22,22,22,23,22,24,2,24,1,23,1,22,1,21,1,20,1,19,1,18,1,17,1,16,1,15,1,14,1,13,1,12,1,11,0,10,0,9,1,8,3,7,4,6,5,5,7,4,8,3,9,2,10,1,11,0];

    map = new GMap2(document.getElementById('map'));
    map.addControl(new GMapTypeControl());
    map.addControl(new GLargeMapControl3D());
    map.setCenter(sanFran, startZoom);

    /* Some Random Code and Functions here ....  */

    var point = new GLatLng(location.lat, location.lng);
    var marker = new GMarker(point, myIcon);
    map.addOverlay(marker);

    /* Some Random Code and Functions here ....  */

    GEvent.addListener(marker, "click", function(){
        var randomText = "Just some random test text";
        var myHtml = "<b>#" + location.id + "</b><br/>" + location.neighborhood + "<br/>" + randomText;
        map.openInfoWindowHtml(point, myHtml);
    });
});

$(document.body).unload(function() {
    if (GBrowserIsCompatible()) {
        GUnload();
    }
});

最佳答案

您也可以尝试设置pixel offset in the GInfoWindowOptions of openInfoWindowHTML()。

您完全可以移动信息窗口吗?通过设置非常大的值只是为了测试?

否则,我怀疑这是否是答案,但是我会尝试以防万一。

Google Maps API
“一旦通过GMap2构造函数创建了地图,就需要对其进行初始化。此初始化是通过使用地图的setCenter()方法来完成的。setCenter()方法需要GLatLng坐标和缩放级别,并且该方法必须在对地图执行任何其他操作(包括设置地图本身的任何其他属性)之前发送。”

您将在调用setCenter()之前添加几个控件。

关于javascript - Google Maps API infoWindowAnchor无法正常工作吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1178734/

10-14 22:53
查看更多