【问题标题】:how to show vectorTile on non-geographical maps如何在非地理地图上显示vectorTile
【发布时间】:2018-07-13 06:14:16
【问题描述】:

我使用 Leaflet L.TitleLayer 在地图上显示了网格切片图层。现在,我有一个 geojson 文件,想在地图上显示。

{
   "type":"FeatureCollection",
   "features":[
      {
         "type":"Feature",
         "id":1,
         "properties":{
            "Entity":"LWPolyline",
            "Handle":"5D11",
            "Layer":"JMD",
            "LyrFrzn":0,
            "LyrLock":0,
            "LyrOn":1,
            "LyrVPFrzn":0,
            "LyrHandle":"16D",
            "Color":6,
            "EntColor":-1,
            "LyrColor":6,
            "BlkColor":0,
            "Linetype":"Continuous",
            "EntLinetyp":"Continuous",
            "LyrLnType":"Continuous",
            "BlkLinetyp":null,
            "Elevation":0.000000,
            "Thickness":0.000000,
            "LineWt":0,
            "EntLineWt":0,
            "LyrLineWt":0,
            "BlkLineWt":-1,
            "RefName":null,
            "LTScale":1.000000,
            "ExtX":0.000000,
            "ExtY":0.000000,
            "ExtZ":1.000000,
            "DocName":"03.dxf",
            "DocPath":"F:\\dataChange\\03.dxf",
            "DocType":"DXF",
            "DocVer":"AC1021",
            "height":0.000000,
            "Shape_Leng":18.192087
         },
         "geometry":{
            "type":"LineString",
            "coordinates":[
               [
                  3121034.4810791016,
                  534863.26330566406
               ],
               [
                  3121039.9448852539,
                  534866.55871582031
               ],
               [
                  3121041.3472900391,
                  534864.23352050781
               ],
               [
                  3121035.8834838867,
                  534860.93811035156
               ],
               [
                  3121034.4810791016,
                  534863.26330566406
               ]
            ]
         }
      }
   ]
}

我应该选择什么地图来完成它?因为geojson太大(上面的代码只是其中的一部分),我需要使用vectorTile。谢谢!

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。您应该尝试解决您面临的问题。

标签: leaflet gis vector-tiles


【解决方案1】:

我的建议:

1) 将您的数据放入 PostGIS 数据库;

2) 使用 PostGIS ST_ASMVT、ST_ASMVTGEOM 函数从您的后端(nodejs/asp.net/php 等)获取矢量切片数据(pbf 二进制文件);

3) 要获取矢量切片,您可以使用 mapnik(nodejs 绑定)或 mapserver(fastcgi,mascript 无法生成 mvt 输出)。 Mapnik 和 mapserver 可以直接使用 geojson 源(无需 postgis 应用层)。

4) 使用 openlayers(我的选择)或 Leaflet 或 MapBox GL js 客户端在浏览器中显示矢量切片。我更喜欢 OL,因为它更具可定制性,并且可以在不同的投影中显示矢量图块(不仅在 web 墨卡托中)。 使用 mapserver 或 mapnik 允许生成图像并使用其他输出格式(pdf、kml 等),除了 MVT(如果需要)和许多其他很酷的功能,如标签、查询、地理转换等。使用 MVT 需要客户端样式,但图像图块完全在服务器上呈现。但 PostGIS 方式轻巧、快速且相当简单。

还有很多其他方法可以制作矢量图块。例如,gdal ogr 实现 (https://www.gdal.org/drv_mvt.html) 支持层。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多