我正在使用 Google Maps V3 API 的实用程序库中的 InfoBox 类来制作与点关联的标签。
现在,我的目标是让标签整齐地围绕一个点流动,但正如您所见,这并没有发生:
从 InfoBox 规范中可以看出,pixelOffset 采用 Size 对象(https://developers.google.com/maps/documentation/javascript/reference#Size)。文档并没有详细说明接受哪些值。(我当然想要负值。)
首先,我有一个带有偏移值的数组:
var arr = [
{x: -25, y: -25},
{x: -25, y: 0},
{x: -25, y: 25},
{x: 0, y: -25},
{x: 0, y: 0},
{x: 0, y: 25},
{x: 25, y: -25},
{x: 25, y: 0},
{x: 25, y: 25}
];
然后,一个位置:
var lat = 58.9030277;
var lng = 5.7114827999999990;
最后,循环生成标记和偏移量:
for (i = 0; i < arr.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng)
});
var myOptions = {
content: '#' + (i + 1),
disableAutoPan: true,
pixelOffset: new google.maps.Size(arr[i].x, arr[i].y),
position: new google.maps.LatLng(lat, lng)
};
ib = new InfoBox(myOptions);
}
有人理解这种行为吗?有没有更好的方法来获得这个结果?