开发者

how to change (x,y) to geo-location in google-maps v3

开发者 https://www.devze.com 2022-12-25 08:36 出处:网络
in v2: point = map.fromContainerPixelToLatLng(new GLatLng(x,y));} in v3 i do this: point = map.Ma开发者_Python百科pCanvasProjection.fromContainerPixelToLatLng(new LatLng(x,y));

in v2:

point = map.fromContainerPixelToLatLng(new GLatLng(x,y));}

in v3 i do this:

point = map.Ma开发者_Python百科pCanvasProjection.fromContainerPixelToLatLng(new LatLng(x,y));

and error..

how to do this?

thanks


As far as I know the map class doesn't have a MapCanvasProjection property. It's not in the specs if they've recently added one.

There's a work around you can do by creating a dummy OverlayView which will have a projection:

  /**@private 
   * In V3 it is quite hard to gain access to Projection and Panes. 
   * This is a helper class 
   * @param {google.maps.Map} map 
   */ 
  function ProjectionHelperOverlay(map) { 
    google.maps.OverlayView.call(this); 
    this.setMap(map); 
  } 
  ProjectionHelperOverlay.prototype = new google.maps.OverlayView(); 
  ProjectionHelperOverlay.prototype.draw = function () { 
    if (!this.ready) { 
      this.ready = true; 
      google.maps.event.trigger(this, 'ready'); 
    } 
  }; 

Which was taken from this open source code. You can use it like this:

var proj = new ProjectionHelperOverlay(map);
proj.getProjection().fromContainerPixelToLatLng(new LatLng(x,y));
0

精彩评论

暂无评论...
验证码 换一张
取 消