Googleマップを使用してカスタムマーカーとカスタムテキストを情報ウィンドウに表示できるウィジェットを作成しました。このウィジェットはさまざまなテンプレートで使用できます。今問題は、異なるテンプレートがウィジェットのブロックサイズが異なることがあることです。 InfoWindowのサイズを知ることができるかどうかを知りたいのですが、それを基にして、infoWindoのサイズをbiggetしてからウィジェットのサイズを指定すると、より大きなマップを持つ詳細ページにユーザをリダイレクトします。GoogleマップのInfoWindowサイズの確認
いずれかが情報ウィンドウのサイズを取得する方法を私はお勧めできます:後
たちはマップとinfoWindoを生成しているかの抜粋です:
var mapConf = {
center: somePoint,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false,
zoom: 12
},
markerData = {
animation: google.maps.Animation.DROP,
position: somePoint,
title: 'Some random title'
},
iconConf = getMarkerIcon($markerTypeIcon || 'hollowPin', {
fill: getColor($color_one)
}) ;
if(iconConf) {
iconConf.fillColor = iconConf.fill;
iconConf.strokeColor = iconConf.stroke;
markerData.icon = iconConf;
}
// create the map
map = new google.maps.Map(document.getElementById('map-widget'), mapConf);
// create infowindow
infoWindow = new google.maps.InfoWindow();
// create marker
marker = new google.maps.Marker(markerData);
marker.setMap(map);
var strContent = '<div id="content" style="width:170px; height: 100%;">' +
'<div id="add1">' +
'<b>'+ _config.dataName.getValue +'</b><br>' + _config.addressInfo +'</div>' +
'<div id="dataLink">' +
'<a onclick="javascript: window.parent.location.href='+ _config.strLink +'\'">GO</a>' +
'</div>' +
'</div>';
// set up property info window
markerInfoWindow = new google.maps.InfoWindow({
content: strContent,
position: somePoint,
maxWidth:600
});
// add click event for marker to show info window
google.maps.event.addListener(marker, 'click', function() {
markerInfoWindow.open(map, this);
});
これを試してみましたか?*新しいgoogle.maps.InfoWindow({maxWidth:320}); * – Atula
@Atula幅を設定したくありませんInfoWindowのサイズを検出したいので、私のウィジェットdivのサイズと、InfoWindowを開くために利用できるスペースがあまりない場合は、ユーザーをリダイレクトします。 –