作者:John
SuperMap iClient for Leaflet对EPSG:4509地图加载&滑动查询
在WebGIS开发使用中,我们会遇到地图显示不了,以及查询到数据显示不出的问题,因此本文就以EPSG:4509为例介绍该坐标系地图加载和查询。
1、EPSG:4509地图加载
iClient for Leaflet 默认是不支持EPSG:4509,就需要通过 proj4 坐标系统扩展类CRS去做扩展。
1. L.supermap.Proj.CRS
CRS接口介绍如下图:
2. Proj4js库使用
iclient-leaflet中有引用proj4js,再次不在引入proj4js包;定义坐标系参考(https://epsg.io),EPSG:4509的定义如下:
proj4.defs("EPSG:4509","+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs");
3. 实现代码 - 定义CRS4509
//定义CRS4509
var crs4509 =L.Proj.CRS("EPSG:4509",{
def: "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs",
bounds: L.bounds([ 453718.71 , 6629178.46], [589939.38 , 6881954.13])
});
2、滑动查询
iclient-leaflet 的几何查询详见官网示例(https://iclient.supermap.io/examples/leaflet/editor.html#02_getFeatureByGeometry)在此不做多说明;leaflet 绘制数据默认为 4326,服务器返回数据为4509,因此在加载到地图前,先进行坐标系转换。
L.supermap.Util.transform接口介绍
实现代码 - 坐标转换
//4509转4326
L.supermap.Util.transform(serviceResult.result.features, crs4509, L.CRS.EPSG4326);
3、结果展示
本文完整代码:https://download.csdn.net/download/qq_29109799/87156124