まず、私はあなたのリンクで新しいサイトを表示したときに、ページがスロー:捕捉されないにReferenceErrorを:markerOffsetは(再フォーマット)されたライン73、でが定義されていません。
それが見るのは簡単です
//var markerOffset = map.fromLatLngToDivPixel(markers.getPosition());
だから、あなたがライン72とリファクタリング私のコードのコメントを解除する必要があります。このコードは、前の行(行72)上のコードをコメントアウトされているため、定義されていないmarkerOffset
、ないと動作しないこと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
});
}
もちろん、あなたが行うには、いくつかのデバッグを有していても良いように、このコードは、テストされていないが、私はこのことを願っていますコードはあなたが正しい方向に進むようにします。
お返事ありがとうございます!私はそのCSSもどちらかと思っていませんが、私はdiv(オーバーレイ)をマップの "pane"に追加することと関係があると思います。私はそれを把握できません。 – Spiffster
それはマーカーの位置を取得しますが、オーバーレイを助けません。 – Spiffster
申し訳ありませんが、私は間違った質問のCSSに関する答えを書いています! OverlayView内にオーバーレイを表示する必要があります。オーバーレイビューはマップとの関係で正しく表示されます。 –