我正在尝试使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/