google.maps.Projection类有什么作用?

时间:2011-04-25 08:01:56

标签: google-maps google-maps-api-3 map-projections

最近我发现在屏幕上转换LatLngs和像素坐标之间的困难方法我不应该使用通过Map.getProjection轻松访问的Projection类,而应该使用{{3只能通过OverlayView访问的类。

如果您正在使用自定义叠加层,后者很好用,但如果不是,那么访问MapCanvasProjection真的很痛苦。到目前为止,我已经通过向Map类添加一个方法来解决这个问题,这个方法可以让我轻松访问所需的投影类:

google.maps.Map.prototype.getCanvasProjection = function() {
  if (!this.projectionOverlay) {
    this.projectionOverlay = new google.maps.OverlayView();
    this.projectionOverlay.onAdd = function(){};
    this.projectionOverlay.onRemove = function(){};
    this.projectionOverlay.draw = function(){};
    this.projectionOverlay.setMap(this);
  }
  return this.projectionOverlay.getProjection();
};

这一切都看起来像是一件很难做的事情应该是微不足道的。而且它让我想知道MapCanvasProjection班级做了什么?当我阅读文档时,在我看来Projection.fromLatLngToPointMapCanvasProjection.fromLatLngToContainerPixel做同样的事情,但事实并非如此。我很困惑。

1 个答案:

答案 0 :(得分:3)

Projection.fromLatLngToPoint表示从纬度经度转换为墨卡托投影。 MapCanvasProjection对像素进行投影(包括墨卡托)。