Javascript OpenLayers可以';不要在地图上画地图
我正在尝试使用OpenLayers 3在开放的街道地图上绘制一些简单的形状(主要是线条)。我使用的代码几乎是直接从他们网站上的一个版本复制的,但它似乎不适合我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
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: