デフォルトの上部の位置ではなく、マーカーの側面にボックスが開いているカスタムinfoBubbleを実装しようとしています。これは予想よりも難しいことが判明しました。
通常のinfoWindowを使用すると、pixelOffsetを使用できます。ドキュメントについては、こちらをご覧ください
infoBubbleを使用すると、これは当てはまらないようです。infoBubbleでpixelOffsetを使用する方法はありますか、それとも同じことをする何かがありますか?
このようなグーグル検索を使用すると、関連する結果が返されないため、これを検索するのは非常に難しいことがわかりました。グーグル検索
以下は私が使用しているすべてのリソースです。
そして今、私のjavascriptは、jsfiddleリンクが壊れている場合に備えてここにあります。
<script type="text/javascript">
$(document).ready(function () {
init();
});
function init() {
//Setup the map
var googleMapOptions = {
center: new google.maps.LatLng(53.5167, -1.1333),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
//Start the map
var map = new google.maps.Map(document.getElementById("map_canvas"),
googleMapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(53.5267, -1.1333),
title: "Just a test"
});
marker.setMap(map);
infoBubble = new InfoBubble({
map: map,
content: '<div class="phoneytext">Some label</div>',
//position: new google.maps.LatLng(-35, 151),
shadowStyle: 1,
padding: '10px',
//backgroundColor: 'rgb(57,57,57)',
borderRadius: 5,
minWidth: 200,
arrowSize: 10,
borderWidth: 1,
borderColor: '#2c2c2c',
disableAutoPan: true,
hideCloseButton: false,
arrowPosition: 7,
backgroundClassName: 'phoney',
pixelOffset: new google.maps.Size(130, 120),
arrowStyle: 2
});
infoBubble.open(map, marker);
}
</script>
アップデート
この質問に答えるのを助けるために、私はここにテストケースをまとめました。重要な行は38行目と39行目で、ラベルを配置する場所を指定する必要があります。
アップデート2
バウンティが授与されるためには、マーカーの上のデフォルトの位置から離れて配置されたinfoBubbleの例を見る必要があります。できればマーカーの右側に。
アップデート3
テストケースは古い会社のサーバーでホストされているため、アップデート1から削除しました。