首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geopackage不绘制多边形以映射

Geopackage不绘制多边形以映射
EN

Stack Overflow用户
提问于 2021-02-15 04:56:35
回答 1查看 264关注 0票数 3

创建地图的代码:

代码语言:javascript
复制
 <div id="map" style="width: 1000px; height: 700px"></div>
 <script> 
    var map = L.map('map').setView([0,0], 1);
    L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/streets-v10/tiles/{z}/{x}/{y}?access_token=pk.ey31IjoibnVtaW51czEiLCJhIjoiY2treTN3YzduekdwMDJubXNhMWNpemdicyJ9.McJEAeE0Jbj999Oz4pbsZg', {
        attribution: '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>'
    }).addTo(map);

    var marker = L.marker([18.52, 73.86]).addTo(map);

这是正确的创建地图。现在,我试图添加一个包含有关状态的数据的重力场:gpkg.zip

当我使用教程代码将河流绘制到地图上时,它工作得很好:

代码语言:javascript
复制
var rivers = L.geoPackageFeatureLayer([], {
     geoPackageUrl: 'http://ngageoint.github.io/GeoPackage/examples/rivers.gpkg',
     layerName: 'rivers',

     style: {color: 'green'}
    }).addTo(map);

    L.geoJson(stateData).addTo(map); 

而且,当我把这个州地质图片上传给地质学家https://ngageoint.github.io/geopackage-js/的时候,它正确地绘制了所有的东西。然而,当我试图在地图中实现相同的东西时,映射呈现得很好,但是地图上没有绘制状态线;根本没有迹象表明下面的代码是存在的:

代码语言:javascript
复制
var stater = L.geoPackageFeatureLayer([], {
     geoPackageUrl: 'assets/geospatial/gadm_states.gpkg',
     layerName: 'stater',

     style: {color: 'red'}
    }).addTo(map);

我想这可能是因为gpkg文件中有多个层,而且我没有正确地指定on或什么的,所以我从GeoPackage查看器下载了我想要的作为geojson文件的层,这也不起作用。有人对出了什么问题有任何洞察力吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 10:16:06

我认为你是在编造stater层的名字。

我已下载(和未压缩) GADM数据集的一部分,并查看其中包含哪些命名层,然后在其上运行ogrinfo

代码语言:javascript
复制
$ wget https://biogeo.ucdavis.edu/data/gadm3.6/gpkg/gadm36_ESP_gpkg.zip
 [snip]
 2021-02-15 10:49:45 (3,56 MB/s) - “gadm36_ESP_gpkg.zip” saved [9767512/9767512]

$ unzip gadm36_ESP_gpkg.zip
Archive:  gadm36_ESP_gpkg.zip
  inflating: gadm36_ESP.gpkg         
  inflating: license.txt  

$ ogrinfo gadm36_ESP.gpkg 

INFO: Open of `gadm36_ESP.gpkg'
      using driver `GPKG' successful.
1: gadm36_ESP_0 (Multi Polygon)
2: gadm36_ESP_1 (Multi Polygon)
3: gadm36_ESP_2 (Multi Polygon)
4: gadm36_ESP_3 (Multi Polygon)
5: gadm36_ESP_4 (Multi Polygon)

...so即地质公园有五个不同的主题层,名为gadm36_ESP_0 (通过gadm36_ESP_5 )。

现在,我可以将该文件放在一个小型的webserver中,并设置一些基本的传单示例来加载来自的数据,这是我知道存在的中的一个层。

代码语言:javascript
复制
var provinces = L.geoPackageFeatureLayer([], {
     geoPackageUrl: 'https://ivan.sanchezortega.es/cors/2021-02-15-gpkg/gadm36_ESP.gpkg',
     layerName: 'gadm36_ESP_2',

     style: {color: 'red'}
}).addTo(map);

...and -- 实例化按预期工作:

所以:

  • 检查你的地质公园的结构,并知道它包含哪些命名层。
  • 始终检查浏览器控制台是否有错误,因为
    • 一个不良的图层名称将导致“空几何列错误”。
    • 承载重力场的web服务器可能配置错误(例如HTTPS或CORS问题)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66202910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档