Javascript OpenLayers可以';不要在地图上画地图

Javascript OpenLayers可以';不要在地图上画地图,javascript,openstreetmap,openlayers-3,Javascript,Openstreetmap,Openlayers 3,我正在尝试使用OpenLayers 3在开放的街道地图上绘制一些简单的形状(主要是线条)。我使用的代码几乎是直接从他们网站上的一个版本复制的,但它似乎不适合我 var vectorSource = new ol.source.Vector({ features: (new ol.format.GeoJSON()).readFeatures(arr[i].geoJSON) }); var vectorLayer = new ol.layer.Vector({ source: vector

我正在尝试使用OpenLayers 3在开放的街道地图上绘制一些简单的形状(主要是线条)。我使用的代码几乎是直接从他们网站上的一个版本复制的,但它似乎不适合我

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对象


问题是,它不会画任何东西。我做错了什么?

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

请尝试拨打:

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

看起来您需要创建一个JSFIDLE来显示问题,以便其他人进行调查。不要忘记geojson上的坐标必须在EPSG:3857中,并且必须在json中定义此投影,如示例中所示。否则,您可以在format对象中指定选项以重新投影数据。请参见api: