1

V2コードをに変換しています。V3次のコードはgoogle map V2コードです。アラートでは、sw.x何らかの値が来ています。

//Google map V2 code:
function flagIntersectingMarkers()  {
   var pad = this.borderPadding;
       var zoom = this.map.getZoom(); 
   var projection = this.map.getCurrentMapType().getProjection();
   var bounds = this.map.getBounds();
   var sw = bounds.getSouthWest();
   sw = projection.fromLatLngToPixel(sw, zoom);
   alert("sw"+sw.x); // In this alert some value is coming
   sw = new GPoint(sw.x-pad, sw.y+pad);
  sw = projection.fromPixelToLatLng(sw, zoom, true);
 }

//Google map V3 code:
function flagIntersectingMarkers()  {
   var pad = this.borderPadding;
       var zoom = this.map.getZoom();
   var projection = this.map.getProjection();
   var bounds   = this.map.getBounds();
   var sw = bounds.getSouthWest();
   sw = projection.fromLatLngToPoint(sw, zoom);
   alert("sw"+sw.x); // Undefined value is coming
   sw = new google.maps.Point(sw.x-pad, sw.y+pad);
   sw = projection.fromPointToLatLng(sw, zoom, true);
 }

しかし、上記のV3コードでは、アラートでsw.x未定義の値が来ています. でsw.x値を取得する方法V3.

4

1 に答える 1

2

あなたが直面している問題は、呼び出しの一部を v2 から v3 に適切に変換しなかったことと、メソッドのパラメーター リストをチェックしなかったことです。最新の API ドキュメントを使用していることを確認してください。

//Google map V3 code:
function flagIntersectingMarkers()  {
   var pad = this.borderPadding;
   var zoom = this.map.getZoom();              // Returns number
   var projection = this.map.getProjection();  // Returns Projection
   var bounds   = this.map.getBounds();        // Returns LatLngBounds
   var sw = bounds.getSouthWest();             // Returns LatLng
   var swpt = projection.fromLatLngToPoint(sw); // WRONG in original code 2nd argument is Point, and not needed, plus should not overwrite sw
   alert("swpt"+swpt.x); // Should be defined now
   swptnew = new google.maps.Point(swpt.x-pad, swpt.y+pad); // Build new Point with modded x and y
   swnew = projection.fromPointToLatLng(swptnew, true);  //Build new LatLng with new Point, no second argument, true for nowrap
}
于 2013-06-21T19:26:46.437 に答える