Google Map(API V3)中的像素距离,以避免重叠标签/叠加层

时间:2011-08-17 11:28:37

标签: javascript google-maps google-maps-api-3

计算Google地图中坐标(纬度/经度)之间的像素距离的最佳方法是什么。我询问距离(公里/英里)(因此我有library),但屏幕上的像素考虑当前的缩放系数。

背景:我想绘制叠加而不重叠。所以我需要计算这些位置的偏移量。因此,在较低的缩放系数中,500 km的距离可能意味着覆盖层会重叠,而在50 km处则不会重叠。

当然,可以理解,任何其他避免重叠的算法都不是基于像素距离。

- 更新 -

猜猜是朝着聚类的方向发展,会检查这个:

  1. http://www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps
  2. http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/examples/advanced_example.html
  3. - 更新 -

    我很有可能在这里使用它:http://code.google.com/apis/maps/documentation/javascript/reference.html

    google.maps.MapCanvasProjection.fromLatLngToDivPixel
    

    为了得到投影,我将在这里使用答案:

    1. Pan point on Google Map to specific pixel position on screen (API v3)
    2. How to call fromLatLngToDivPixel in Google Maps API V3?

1 个答案:

答案 0 :(得分:8)

首先,我发现我正在寻找的是集群库/示例的主题:

  1. http://www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps
  2. http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/examples/advanced_example.html
  3. 这些例子向我展示了一种方法google.maps.MapCanvasProjection.fromLatLngToDivPixel,它需要对地图进行投影。最终,以下主题揭示了如何进行此预测:

    1. Pan point on Google Map to specific pixel position on screen (API v3)
    2. How to call fromLatLngToDivPixel in Google Maps API V3?