GeoJson 特征坐标以米为单位,而不是 [lng, lat]。如何在google地图中显示?

GeoJson features coordinates are in meters not in [lng, lat]. How to display in google map?

例如:[360590, 555610] - [lng, lat] 来自 google 地图 api 以米为单位 - GeoJson 数据

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "MultiPolygon",
        "coordinates": [
          [
            [
              [
                360590,
                555610
              ],
              [
                360590,
                555555.0128
              ],
              [
                360590,
                555540
              ],
              [
                360592.4439,
                555540
              ],
              [
                360600,
                555540
              ],
              [
                360600,
                555518.8277
              ]
            ]
          ]
        ]
      }
    }
  ]
}

这里,[360590, 555610] - [X, Y] 坐标以米为单位,现在我们需要在 google 地图上显示这个坐标,有解决办法吗?

我们还必须使用 addGeoJson 或 loadGeoJson 方法,因为我们在 GeoJson 文件中有 200MB 的数据。 现在我们需要在google地图上显示这个坐标,有什么解决办法吗?

Mapbox 有一个 Utility class 可以为您执行米到 latitude/longitude 的转换:

public static Vector2d MetersToLatLon(Vector2d m)

将 xy 米中的球形墨卡托 EPSG:900913 转换为 WGS84 lat/lon。

public static Vector2d LatLonToMeters(Vector2d v)

Vector2d 结构、WGS84 lat/lon 转换为球面墨卡托 EPSG:900913 xy 米。

如果您希望自己进行转换,简单方法如下:

  • 假设地球是一个圆周为40,075km的球体。
  • 纬度 1° 的长度(以米为单位)始终为 111.32 公里
  • 经度 1° 的长度(以米为单位)= 40,075 km * cos(latitude) / 360

您确定这些坐标以米为单位吗?

它可能是 EPSG: 27700 或 EPSG:4326 所以你可以尝试一下。

而你这个link QGIS 用于转换坐标,它可能对您有用。