前期准备
我的数据是4548的数据(CGCS2000 / 3-degree Gauss-Kruger CM 117E),数据是通过超图的桌面去制作的,因为只是测试数据,所以数据比较简单,一些简单的线数据。
定义坐标系
在前端加载的时候需要自定义坐标系,其实这个只是一个例子,如果想做别的坐标系也都是一样的操作。
在定义坐标系的时候需要PROJ4的参数,需要在epsg.io去获取相关的参数
然后搜索4548,查询到之后点击并下拉
代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title data-i18n="resources.title_wms"></title>
<script type="text/javascript" src="../js/include-web.js"></script>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
<script type="text/javascript">
var host = window.isLocal ? window.server : "http://support.supermap.com.cn:8090";
Proj4js.defs("EPSG:4548","+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs ");
var crs=L.Proj.CRS('EPSG:4548',{
origin:[ 452178.4 ,4442698.84],
bounds: L.bounds([452178.4 , 4440716.6], [455048.16 , 4442698.84])
})
var map = L.map('map', {
crs:crs,
center: [40.11, 116.46 ],
//这里要把iserver中的中心点坐标,通过动态投影设置为4326,并把iserver的中心点坐标反过来写
maxZoom: 18,
zoom: 1
});
L.tileLayer.wms( "http://:8090/iserver/services/map-WeiLaiCheng/wms111/weilaicheng", {
layers: 'weilaicheng',
format: 'image/png',
transparent: true,
noWrap: true,
attribution: "Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span>"
}).addTo(map);
</script>
</body>
</html>