【问题标题】:centering a google map based on marker lat long values基于标记 lat long 值将谷歌地图居中
【发布时间】:2011-01-06 03:57:55
【问题描述】:

我在地图上绘制了大约 20 个标记,即城市中的位置。当我使用 getLatLng 查找市中心时,它总是与我正在绘制的位置有一点距离,这意味着标记通常位于我地图的一角而不是中心。

有没有办法将地图的中心定位在我的位置更中心的位置上?我猜我需要从我可用的 20 个纬度/经度值计算出的某种“平均”经度/经度坐标。

这可能吗?

【问题讨论】:

    标签: google-maps


    【解决方案1】:

    找到中心应该很容易。只需在您的 20 人组中找到最小和最大的经纬度坐标即可。

    中心将是[min_lat + (max_lat - min_lat)/2, min_long + (max_long - min_long)/2]

    类似:

    var points = Array(); 
    points.push(new GLatLng( xxx, yyy )); 
    ...
    
    min_lat = 90;
    max_lat = -90;
    min_long = 180; 
    max_long = -180; 
    for (p in points) {
        if (p[0] < min_lat) {
            min_lat = p[0];
        }
        if (p[0] > max_lat) { 
            max_lat = p[0];
        }
        if (p[1] < min_long) {
            min_long = p[1];
        }
        if (p[1] > max_long) { 
            max_long = p[1];
        }
    }
    
    center = new GLatLng(min_lat + (max_lat - min_lat) / 2, 
                         min_long + (max_long - min_long) / 2];
    map.setCenter(center, 10); 
    

    如果您的点跨越经度边界 (±180°),此代码可能会出现问题。它还假设这些点位于平面上(而不是球体的表面)。

    如果您谈论的是在美国彼此相距数百英里的坐标,那么这些都无关紧要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 2012-09-05
      • 2020-08-13
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2014-02-02
      相关资源
      最近更新 更多