【问题标题】:OpenLayers can't draw geoJSON on mapOpenLayers 无法在地图上绘制 geoJSON
【发布时间】:2016-04-23 20:41:46
【问题描述】:

我正在尝试使用 OpenLayers 3 在 Open Street Map 上绘制一些简单的形状(主要是线条)。我使用的代码几乎是直接从他们网站上的 example 复制而来,但似乎没有为我工作。

var vectorSource = new ol.source.Vector({
  features: (new ol.format.GeoJSON()).readFeatures(arr[i].geoJSON)
});

var vectorLayer = new ol.layer.Vector({
  source: vectorSource,
  style: styleFunction
});

map.addLayer(vectorLayer);

其中styleFunction 与示例中的函数相同,arr[i].geoJSON 是完全有效的 geoJSON 对象。

问题是,它没有绘制任何东西。我做错了什么?

【问题讨论】:

  • 看来您需要创建一个显示问题的 JSFiddle 以便其他人进行调查。
  • 不要忘记 geojson 上的坐标必须在 EPSG:3857 中,并且这个投影必须像示例中一样在您的 json 中定义。否则,您可以在格式对象中指定选项以重新投影数据,请参阅 api:openlayers.org/en/master/apidoc/ol.format.GeoJSON.html

标签: javascript openstreetmap openlayers-3


【解决方案1】:

您可能需要为readFeatures 方法提供选项。 GeoJSON 投影一般使用 4326,而大多数 web 地图一般使用 3857。

尝试调用:

(new ol.format.GeoJSON()).readFeatures(arr[i].geoJSON,{
    featureProjection:"EPSG:3857"
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多