在传单上使用自定义地图投影

时间:2013-08-27 10:11:30

标签: javascript openlayers gis leaflet

我有一个应用程序显示运行在Openlayers - jsfiddle working sample上的EPSG:3414地图。

我正在尝试在Leaflet - jsfiddle non-working上实现相同的功能,因为我可能遗漏了某些内容或者可能导致某些概念出错。

不幸的是,我很陌生,我正在弄清楚如何让它发挥作用。

欢迎任何帮助。谢谢!

更新

  1. map是使用ZYX和SVY21投影的ESRI类型:
  2. 此处更新了代码(JS小提琴未更新)
  3. 地图XY不是从0/0开始,它们是一些其他数字,所以它变得越来越复杂,我必须为每个级别做一些魔法数字偏移,这有点工作但不理想,因为位置是不准确,接近但不够准确。
  4. 宣传单示例:

    var proj = new L.Proj.CRS.TMS('EPSG:3414', "+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defs",
        [4257.9355, 11470.3186, 64359.3062, 49067.5413], 
        {
            resolutions:[76.4372195411057,38.2186097705529,19.1093048852764,9.55465244263822,4.77732622131911,2.38866311065955,1.19433155532978,0.597165777664889,0.298450596901194]
        }
    );
    
    var map = L.map('my_map', {
        crs: proj,
        continuousWorld: true,
        worldCopyJump: false
    });
    
    map.addLayer(new L.Proj.TileLayer.TMS('http://{s}.onemap.sg/ArcGIS/rest/services/basemap/MapServer/tile/{z}/{y}/{x}', proj, {
        subdomains: ['t1', 't2'],
        tms: true,
        continuousWorld: true
    }));
    

1 个答案:

答案 0 :(得分:0)

这个例子

http://esri.github.io/esri-leaflet/examples/non-mercator-projection.html

或此示例帮助

http://blog.thematicmapping.org/2012/07/using-custom-projections-with-tilecache.html

我会在示例中使用firefox中的firebug,然后查看控制台中是否有错误消息。

在我把它放入JS Fiddle之前,我会在一个直接的网页上试一试。只有少一点可能会干扰。