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

Using Custom Map Projection On Leaflet

本文关键字:自定义 地图投影      更新时间:2023-09-26

我有一个应用程序,它显示了一个运行在Openlayers上的EPSG:3414映射-jsfiddle工作示例。

我正试图在Leaflet-jsfiddle上实现同样的功能,但它不起作用,因为我可能遗漏了一些内容,或者可能误解了一些概念。

不幸的是,我很不熟悉,正在想办法让它发挥作用。

欢迎任何帮助。谢谢

更新:

  1. 使用ZYX和SVY21投影的地图是ESRI类型):
  2. 此处更新了代码(JS fiddle未更新)
  3. 地图X-Y不是从0/0开始的,它们是一些其他数字,所以它变得越来越复杂,我必须为每个级别做一些神奇的数字偏移,这在一定程度上有效,但并不理想,因为位置不准确,很近,但不够准确

传单样本:

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
}));

这个例子是吗

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中之前,我会在一个直接的网页上尝试它。只是少了一件可能会干扰的事情。