openlayers中画点和线,只显示点,但是线不显示。
代码如下
//起始位置
var center = [103.9271879196, 30.7462617980];
var saoguan = new ol.Feature({
geometry:new ol.geom.Point(ol.proj.fromLonLat([113.5991,24.8166]))
});
saoguan.setStyle(new ol.style.Style({
image:new ol.style.Circle({
radius: 5,
fill: new ol.style.Fill({
color: '#FF0000'
})
})
})
);
var feature = new ol.Feature({
geometry:new ol.geom.LineString(
[[113.5991,24.8166], [114.5991,25.8166]])
});
feature.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
width: 3,
color: [255, 0, 0, 1]
})
}));
var source = new ol.source.Vector({
features:[feature,saoguan]
});
var layer = new ol.layer.Vector({
source: source
});
var rasterLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
var map = new ol.Map({
layers: [rasterLayer, layer],
target: document.getElementById('map'),
view: new ol.View({
center: ol.proj.fromLonLat([113.5991,24.8166]),
zoom: 3
})
});
只显示这个点
问题解决了。openlayers通过监听地图事件获取的经纬度坐标是经过加密算法偏移的数值,
因此在使用坐标之前需要将其转化成为正确的经纬度坐标:
coordinate 是需要转化的坐标,经过 transform 方法转化后,得到的是真是的经纬度坐标值!
那为什么点没转化就出来了?
在线等大佬
– 孤芳自赏的小孩 5年前