我有一个显示在Openlayers 上运行的 EPSG:3414 地图的应用程序 - jsfiddle 工作示例。
我正在尝试在Leaflet - jsfiddle non-working上实现相同的功能,它无法正常工作,因为我可能遗漏了某些内容或可能有一些概念错误。
不幸的是,我很陌生,并且正在弄清楚如何让它发挥作用。
欢迎任何帮助。谢谢!
更新:
- 地图是使用 ZYX 和 SVY21 投影的 ESRI 类型):
- 此处更新代码(JS fiddle 未更新)
- 地图 XY 不是从 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
}));