【发布时间】:2018-03-26 10:13:15
【问题描述】:
我正在使用 Leafletjs 使用 OSM 瓦片绘制地理地图。我使用以下 GeoJSON 作为地图层 http://code.highcharts.com/mapdata/1.0.0/custom/world.js,它使用来自 naturalearthdata.com 的数据
但它不起作用。平铺层正确显示。但是没有显示 GeoJSON 数据。我只能在地图上看到一条白线。
var worldMapData = {}; //the geoJson data from http://code.highcharts.com/mapdata/1.0.0/custom/world.js
var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
osm = L.tileLayer(osmUrl, {
noWrap: true,
attribution: "<a href='http://openstreetmap.org'>OpenStreetMap</a>"
});
var map = L.map('map').setView([0, 0], 1).addLayer(osm);
function style( feature ) {
return {
fillColor: '#FFEDA0',
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7
};
}
map.addLayer(L.geoJson(worldMapData, {style: style}));
我错过了什么吗?上面的 GeoJSON 不符合规范吗?如果没有,我可以从哪里下载所有与leafletjs 兼容的国家/地区的GeoJSON?
[编辑]这是解决上述问题的jsfiddle http://jsfiddle.net/1x1p55fy/
【问题讨论】:
-
什么是“不工作”?它崩溃了吗?有错误信息吗?它似乎有效,但什么也没显示?你是如何加载数据的?与 Leaflet 交互时,您的代码看起来如何?正如你的问题所写,很难知道发生了什么
-
@IvanSanchez 补充说明
-
你是如何初始化
worldMapData的? -
@IvanSanchez 添加了 jsfiddle 链接
-
链接文件中的坐标和您在 JSFiddle 中检索到的坐标都不在 WGS84 lat/lng 中,如 required by GeoJSON format。
标签: leaflet openstreetmap geojson