Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Leaflet 如何将UTM加纳米网格中的坐标转换为经纬度,反之亦然_Leaflet_Projection - Fatal编程技术网

Leaflet 如何将UTM加纳米网格中的坐标转换为经纬度,反之亦然

Leaflet 如何将UTM加纳米网格中的坐标转换为经纬度,反之亦然,leaflet,projection,Leaflet,Projection,我正在编写传单Js,其中我希望用户以X,Y形式输入坐标。i、 e.加纳米网格和我需要将X、Y转换为纬度和经度,以便它们可以作为标记绘制在传单Js上。您可以使用此在线转换器: 使用API参数,当用户通过应用程序输入坐标进行转换时,您可以执行GET请求。您可以使用此在线转换器: 使用API参数,当用户通过应用程序输入坐标以进行转换时,您可能能够执行GET请求。由于您使用的是Javascript,因此我建议使用(OSGeo的Javascript实现,用于在坐标参考系之间转换坐标的行业标准)来解决此问题

我正在编写传单Js,其中我希望用户以X,Y形式输入坐标。i、 e.加纳米网格和我需要将X、Y转换为纬度和经度,以便它们可以作为标记绘制在传单Js上。

您可以使用此在线转换器:


使用API参数,当用户通过应用程序输入坐标进行转换时,您可以执行GET请求。

您可以使用此在线转换器:


使用API参数,当用户通过应用程序输入坐标以进行转换时,您可能能够执行GET请求。

由于您使用的是Javascript,因此我建议使用(OSGeo的Javascript实现,用于在坐标参考系之间转换坐标的行业标准)来解决此问题

首先,抓住a或使用a,例如:

您可以在项目发布的数据文件或网站(如epsg.io)中查看CRS的项目定义

一旦定义了CRS,调用proj4js并给出其名称和要转换的坐标,例如从EPSG:4326转换为EPSG:25000

console.log(  proj4("EPSG:4326", "EPSG:25000", [-0.187, 5.6037])  );
…或从EPSG:25000到EPSG:4326

console.log(  proj4("EPSG:25000", "EPSG:4326", [364346.57, 103339.95])  );
见a

注意坐标的顺序(,或x-y与y-x)。传单使用lat lng,但proj使用x-y和lng lat,因此您必须翻转坐标,例如

var accraLngLat = proj4("EPSG:25000", "EPSG:4326", [364346.57, 103339.95]);
L.marker([accraLngLat[1], accraLngLat[0]]).addTo(map);

见a

还要注意的是,proj4js完成了所有的重投影工作,并且没有涉及API调用



由于您是专门处理传单的,所以您可能也对传单感兴趣,尽管您可能不需要它。如果您想使用宣传册在不同投影中显示光栅数据(或地图分幅),这将非常有用。

由于您使用的是Javascript,我建议使用(OSGeo的Javascript实现,用于在坐标参照系之间转换坐标的行业标准)来解决此问题

首先,抓住a或使用a,例如:

您可以在项目发布的数据文件或网站(如epsg.io)中查看CRS的项目定义

一旦定义了CRS,调用proj4js并给出其名称和要转换的坐标,例如从EPSG:4326转换为EPSG:25000

console.log(  proj4("EPSG:4326", "EPSG:25000", [-0.187, 5.6037])  );
…或从EPSG:25000到EPSG:4326

console.log(  proj4("EPSG:25000", "EPSG:4326", [364346.57, 103339.95])  );
见a

注意坐标的顺序(,或x-y与y-x)。传单使用lat lng,但proj使用x-y和lng lat,因此您必须翻转坐标,例如

var accraLngLat = proj4("EPSG:25000", "EPSG:4326", [364346.57, 103339.95]);
L.marker([accraLngLat[1], accraLngLat[0]]).addTo(map);

见a

还要注意的是,proj4js完成了所有的重投影工作,并且没有涉及API调用



由于您是专门处理传单的,所以您可能也对传单感兴趣,尽管您可能不需要它。如果您想使用传单在不同投影中显示光栅数据(或地图分幅),这将非常有用。

您的问题实际上有点矛盾,因为没有“UTM网格”这样的东西。EPSG:25000 CRS,命名为“加纳米网格”,使用横向墨卡托投影。。。但它不是通用导线墨卡托(“UTM”)投影(根据参考大地水准面,30N区的EPSG:32630或EPSG:25830或EPSG:23030)。我假设你能够找到你想要使用的CRS的EPSG代码。你的问题实际上有点矛盾,因为没有“UTM网格”这样的东西。EPSG:25000 CRS,命名为“加纳米网格”,使用横向墨卡托投影。。。但它不是通用导线墨卡托(“UTM”)投影(根据参考大地水准面,30N区的EPSG:32630或EPSG:25830或EPSG:23030)。我假设你能找到你想要使用的CRS的EPSG代码。搞定了。这真的很有帮助。非常感谢。它工作正常。虽然我并不完全理解定义是如何创建的。你的解决方案解决了我的问题。定义投影和CRS可以填满整本书;随便看看。请务必阅读有关接受答案的内容,顺便说一句。请记住。这真的很有帮助。非常感谢。它工作正常。虽然我并不完全理解定义是如何创建的。你的解决方案解决了我的问题。定义投影和CRS可以填满整本书;随便看看。顺便说一句,请阅读关于接受答案的内容。