最初に、あなたのリンクで新しいサイトを表示すると、ページがスローされます: Uncaught ReferenceError: markerOffset is not defined at line 73, which is (reformatted):
$("#infoCallout").fadeIn('slow').css({
top: markerOffset.y + -107,
left: markerOffset.x - 40 });
markerOffset
前の行 (72 行目) のコードがコメント アウトされているため、このコードは定義されていません。
//var markerOffset = map.fromLatLngToDivPixel(markers.getPosition());
そのため、72 行目のコードのコメントを外し、v3 API を介して機能するようにリファクタリングする必要があります。
- 内部呼び出し:
markers.getPosition()
v3 でも有効です。ここまでは順調ですね
- 外側の呼び出し:
map.fromLatLngToDivPixel()
v3 にはもう存在しません。これと関連する呼び出しはクラスに移動されました: google.maps.MapCanvasProjection
. プロジェクションは、次を呼び出すことで到達できますOverlayView.getProjection()
。
まとめると、displayPoint
関数内のコードを次のように変更することをお勧めします。
function displayPoint( markers, index ) {
map.panTo( markers.getPosition() );
$("#infoCallout").hide();
updateMemberInfo( pic[index], dN[index], bID[index], cS[index] );
// Next 2 lines are new and replace the old line of code:
var prjctn = overlay.getProjection();
var markerOffset = prjctn.fromLatLngToDivPixel( markers.getPosition() );
$( "#infoCallout" ).fadeIn( 'slow' ).css({
top: markerOffset.y + -107,
left: markerOffset.x -40
});
}
明らかに、このコードはテストされていないため、デバッグを行う必要があるかもしれませんが、このコードが正しい方向に進むことを願っています.