首页 / 浏览问题 / WebGIS / 问题详情
iserver发布的数据服务坐标系问题
30EXP 2023年05月22日
使用产品:iserver 11c

问题详细描述:使用iserver发布的矢量数据是WGS_1984/Web_Mercator,查询功能查询到的几何要素是xy坐标值,需要将查询到的要素显示在底图为3857的leaflet上,但leaflet的L.geoJson只支持经纬度坐标。想请教一下如何进行坐标转换?还是原始数据发布的时候转换一下坐标系,直接得到经纬度坐标呢?

1个回答

您好!可以在Leaflet中使用坐标转换,可以参考以下这篇博客https://blog.csdn.net/supermapsupport/article/details/79581665

希望可以帮助到您!

1,427EXP 2023年05月22日

您好,谢谢你的回答,我需要将4326坐标系的几何转换为3857的经纬度坐标。但是我并没有转换成功,能帮忙看一下代码吗?这部分我需要把原始坐标转换为经纬度坐标

this.QueryLayer= L.geoJSON(this.QueryResult.features,{
                    onEachFeature: function (feature, layer) {

                      for (let i = 0; i < feature.geometry.coordinates[0][0].length; i++) {
                        console.log('转换前',feature.geometry.coordinates[0][0][i])
                        //leaflet经纬度是反的,颠倒顺序
                        var point_old = L.latLng(feature.geometry.coordinates[0][0][i][1],feature.geometry.coordinates[0][0][i][0]);
                        var point_new = L.CRS.EPSG3857.project(point_old);
                        //原始坐标是14506287.163189711, 5465045.113100183,
                        //转换后的坐标是20037508.34278071, 1614832500307.2795 ,并不是经纬度坐标
                        var point = [point_new.y, point_new.x];
                        feature.geometry.coordinates[0][0][i]=point
                          console.log('转换后',feature.geometry.coordinates[0][0][i])
                        }

            },

您确认一下这个原始坐标的坐标系是否为4326.看您代码注释这个14506287.163189711, 5465045.113100183显然是投影坐标系,不是4326这种地理坐标系
...