ポイントに関連付けられたラベルを作成するために、Google MapsV3APIのユーティリティライブラリの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);
}
誰かがこの振る舞いを理解していますか?この結果を得るより良い方法はありますか?