C.P*_*P.O 5 javascript geojson leaflet vector-tiles
我有一个 GeoJSON 简单数据,需要使用 L.CRS.Simple crs 在传单地图上显示,因为它是反子午线数据,有时,坐标可以是 [450,389] (超过 180)
这是非常简单的 GeoJSON:
{
"type": "FeatureCollection",
"name": "entities",
"features": [
{
"type": "Feature",
"properties": {
"Layer": "0",
"SubClasses": "AcDbEntity:AcDbPolyline",
"EntityHandle": "1F9",
"style": "PEN(c:#FF0000)"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
0,
0
],
[
0,
150
],
[
150,
150
],
[
150,
0
],
[
0,
0
]
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
使用geojson-vt,(演示页面)我得到这个矩形:

我对 geojson-vt lib 做了一些修改:
投影功能:
function projectX(x, simple, projectionFactor) {
return x / 256 + 1;
}
function projectY(y, simple, projectionFactor) {
return - y / 256 + 0.5;
}
Run Code Online (Sandbox Code Playgroud)
我添加了GeoJSONVT.prototype.getTile这一行的功能:
y = y + (1 << (z - 1)); // xy map
Run Code Online (Sandbox Code Playgroud)
结果是(标记放置在 [0,0],[150,0],[150,150],[0,150] 上):
有什么建议吗?为什么我这里的瓷砖掉了?
小智 0
我建议您阅读以下内容: https://macwright.org/2016/09/26/the-180th-meridian.html
\n引用GeoJSON规范推荐的解决方案:
\n\n\n在表示跨越反子午线的要素时,通过修改其几何形状可以提高互操作性。任何穿过反子午线的几何图形都应该通过将其切成两半来表示,这样任何一个部分\xe2\x80\x99s 表示都不会穿过反子午线。- GeoJSON 规范,3.1.9
\n
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |