leaflet 怎么加载大地2000坐标系地图服务

0 投票
331 浏览
leaflet 怎么加载大地2000坐标系地图服务

proj4.defs("EPSG:4525","+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
 var crs1 = new L.Proj.CRS("EPSG:4525","+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
             
    var host = window.isLocal ? window.server : "http://support.supermap.com.cn:8090";
    var map, infoWin, url =  "http://127.0.0.1:8090/iserver/services/map-test/rest/maps/X12003G2018M420500_JSYDGZQ";
   map = L.map('map', {
        preferCanvas: true,
         crs: crs1,
        center: {lon: 37519518.77, lat:  3400229.47},
        maxZoom: 18
       
    });
    L.supermap.tiledMapLayer(url).addTo(map);

加载地图不成功显示
最新提问 1月 3 分类:  331次浏览 | 用户: bryant (8 分)

1个回答

0 投票

你好,定义投影可以尝试以下代码,你已经用proj4.defs定义了5425了,在定义投影的时候请用以下格式,还有中心的位置,和地图范围,可以在iserver发布的地图服务中查找到, 附上apihttp://iclient.supermapol.com/web/apis/leaflet.html

var crs =L.Proj.CRS("EPSG:5425",{
         origin: [-180,90],
         scaleDenominators: [2000,1000,500,200,100,50,20,10],
   });
   var map=L.map('map', {
      crs: crs
     ...
   })
最新回答 1月 3 用户: xiao_yang 锋芒毕露 (418 分)
还是不行,但是这个工作空间的地图服务,在iDesktop里面也看不到数据,但是发布的是经纬度坐标的数据,在iDesktop看不到,页面上面调用可以看得到
你在iserver发布的地图服务里面,可以浏览到你发布的地图吗?
浏览不到,不知道是哪里出了问题
你可以先在桌面软件中把你图制作好并且可以显示出来,然后再在桌面中发布地图服务  ( 在线-发布服务),然后点击输出的 发布好服务的地址链接,你点击进去看一下是否可以浏览,如果iserver可以浏览,那么在前端是也可以显示出来只需要你自己定义好投影
好的,谢谢,我之前都是在iserver里面发布的

你好,我还请教一个我问题,我现在在idesktop能浏览我的地图服务了。但是我加载到地图上面还是看不到地图

proj4.defs("EPSG:4547","+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
var crs =L.Proj.CRS("EPSG:4547",{
         origin: [392992.43,3140374.47],
         scaleDenominators: [500000,200000,100000,50000,25000,20000,10000,5000],
   });
             
    var host = window.isLocal ? window.server : "http://support.supermap.com.cn:8090";
    var map, infoWin, url =  "http://127.0.0.1:8090/iserver/services/map-wcxzq/rest/maps/WCXZQ";
    map = L.map('map', {
        preferCanvas: true,
        crs: crs,
        center: {lon:392992.43, lat:3140374.47},
        maxZoom: 18,
        zoom: 1
    });
    L.supermap.tiledMapLayer(url).addTo(map);

代码是这样写的,我想问一下origin 这个点 是到哪里去找,还是根据投影坐标来的

在你定义的投影里面定义个范围    bounds: L.bounds([367387072, 3114713.67], [406130.67, 3161203.1]),

在你定义的map对象里面center属性改为你的中心点坐标 center: [392992.43,3140374.47],
origin: [367387072,3161203.1],

Proj4js.defs("EPSG:4547","+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
    var crs = L.Proj.CRS("EPSG:4547", {
        origin:[367387.71,3161203.04 ],
        resolutions: [86.03597249425798, 43.01798624712899, 21.508993123564494, 10.754496561782247, 5.3772482808911235, 2.6886241404455617, 1.3443120702227809, 0.6721560351113904, 0.3360780175556952, 0.1680390087778476, 0.0840195043889238, 0.0420097521944619, 0.02100487609723095, 0.010502438048615476, 0.005251219024307738, 0.002625609512153869],
        dpi:96
    });

    map = L.map('map', {
        crs: crs,
        center: [28.3658186772855,112.825836256082],
        zoom: 6
    });
    L.supermap.tiledMapLayer("http://localhost:8092/iserver/services/map-test2000/rest/maps/GISDATA").addTo(map);

上面用的iserver是9.0.1a,建议使用最新的911iserver

代码来自于超图支持工程师刘美玲,特此感谢

...