はじめまして。mzsm_jと申します。
現在、Maps API V3を利用したスマートフォン向けサイトを作成しています。
大まかな仕組みは、外部から取得した位置情報を含むデータを元にマップ上にマーカーを配置し、マーカーをタップすると情報ウィンドウを表示する、という
ものです。
このとき情報ウィンドウ内にセレクトボックスを表示してユーザーに選択させようとしているのですが、iPhoneまたはiPadで情報ウィンドウ内のセ
レクトボックスをタップすると、マップ全体がズレてしまいました(実機、シミュレータともに発生しました)。
ただ単に地図が勝手にパンするという意味ではなく、マップ種別やGoogleロゴ、著作権表示といったコントロール類も含めてすべてズレてしまっていま
す。
また、毎回ズレるわけではなくて、情報ウィンドウが紐付けられているマーカーの位置によってズレる場合とズレない場合があるようです。
再現用のソースは以下のとおりです。
<!DOCTYPE html>
<html style="height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="initial-scale=1.0; user-scalable=0;" />
<title>test</title>
<script type="text/javascript" src="
http://maps.google.com/maps/api/js?
sensor=false"></script>
<script type="text/javascript">
function init(){
var map = new google.maps.Map(
document.getElementById("map"),
{
zoom: 10,
center: new google.maps.LatLng(35, 135),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
);
var marker = [];
var info_window = [];
for(i=0; i<20; i++){
marker[i] = new google.maps.Marker(
{
map: map,
position: new google.maps.LatLng(34+Math.random()*2,
134+Math.random()*2)
}
);
info_window[i] = new google.maps.InfoWindow(
{
content: '<select><option>test</option></select>'
}
);
info_window[i].open(map, marker[i]);
}
}
</script>
</head>
<body onload="init()" style="margin:0px; padding:0px; height:100%;">
<div id="map" style="width:100%;height:100%;"></div>
</body>
</html>
回避する手段をご存知の方がいらっしゃいましたら、力を貸していただければ幸いです。
よろしくお願いします。