Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript google map API上使用仪表显示geojson数据_Javascript_Google Maps_Mapbox_Geojson - Fatal编程技术网

如何在javascript google map API上使用仪表显示geojson数据

如何在javascript google map API上使用仪表显示geojson数据,javascript,google-maps,mapbox,geojson,Javascript,Google Maps,Mapbox,Geojson,GeoJson文件坐标以[X,Y]米为单位,而不是以[lng,lat]为单位。如何在谷歌地图上显示它 GeoJson数据 这里,[3605905610]-[X,Y]坐标以米为单位,现在我们需要在谷歌地图上显示这个坐标,有什么解决方案吗 我们还必须使用addGeoJson或loadGeoJson方法,因为我们在GeoJson文件中有200MB的数据。在后端进行转换会更好,但也有一种JS方法——使用和查找相应的基准 要点:线性环的第一个和最后一个位置必须相同。否则您的GeoJSON就是。所以请注意我

GeoJson文件坐标以[X,Y]米为单位,而不是以[lng,lat]为单位。如何在谷歌地图上显示它

GeoJson数据

这里,[3605905610]-[X,Y]坐标以米为单位,现在我们需要在谷歌地图上显示这个坐标,有什么解决方案吗


我们还必须使用addGeoJson或loadGeoJson方法,因为我们在GeoJson文件中有200MB的数据。

在后端进行转换会更好,但也有一种JS方法——使用和查找相应的基准

要点:线性环的第一个和最后一个位置必须相同。否则您的GeoJSON就是。所以请注意我的
数组是如何从同一点开始和结束的


安装/导入
proj4js
后:

// from https://epsg.io/27700
const EPSG_27700_DATUM = "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs";

// from https://epsg.io/4326
const WGS84_DATUM = "+proj=longlat +datum=WGS84 +no_defs";

const points = [[360590,555610],[360590,555555.0128],[360590,555540],[360592.4439,555540],[360600,555540],[360600,555518.8277],[360590,555610]];

const converted_points = points.map(([lon, lat]) => {
    return proj4(EPSG_27700_DATUM, WGS84_DATUM, [lon, lat]);
});

console.info({ converted_points });
正在验证多边形是否确实在GB范围内:


听起来数据在不同的投影中(可能是EPSG:3857)。如果这是真的,您需要将点重新投影到EPSG:4326(如果不是真的,您仍然需要获得等效的WGS84/ESPG:4326点)。是的@geocodezip可能会发生这种情况,但我需要代码片段来解决此问题,我发现了许多解决方案,但都不适用于我。可能的重复经过长时间的研究,我发现我在EPSG中得到了分数:27700。现在需要java代码来转换WGS84/ESPG中的各个点:4326点。我在上找到了解决方案,但它不起作用。
// from https://epsg.io/27700
const EPSG_27700_DATUM = "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs";

// from https://epsg.io/4326
const WGS84_DATUM = "+proj=longlat +datum=WGS84 +no_defs";

const points = [[360590,555610],[360590,555555.0128],[360590,555540],[360592.4439,555540],[360600,555540],[360600,555518.8277],[360590,555610]];

const converted_points = points.map(([lon, lat]) => {
    return proj4(EPSG_27700_DATUM, WGS84_DATUM, [lon, lat]);
});

console.info({ converted_points });