Javascript 如何更改默认标记OPENLAYERS 5
我正在尝试在OSM上显示一些标记。到目前为止,这是可行的,但我只是想根据本地路径中的另一个标记更改默认标记,但我不知道如何将其添加到代码中,我尝试了Javascript 如何更改默认标记OPENLAYERS 5,javascript,Javascript,我正在尝试在OSM上显示一些标记。到目前为止,这是可行的,但我只是想根据本地路径中的另一个标记更改默认标记,但我不知道如何将其添加到代码中,我尝试了setStyle,但我不知道如何正确应用它。如果我也能设计图标的样式,那就太好了。 我还希望动态显示标记,因为每次通过 var layer = new ol.layer.Vector({source: new ol.source.Vector({ features: [ new ol.Feature({
setStyle
,但我不知道如何正确应用它。如果我也能设计图标的样式,那就太好了。
我还希望动态显示标记,因为每次通过
var layer = new ol.layer.Vector({source: new ol.source.Vector({
features: [
new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 50.84673]))
}),
new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 52.84673]))
}),
]
});
下面是我使用的完整代码的一个片段
/* open street map newest version */
var map = new ol.Map({
target: 'map', // the div id
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.fromLonLat([4.35247, 52.520008]),
zoom: 4
})
});
// add a marker to the map
var layer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [
new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 50.84673]))
}),
new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 52.84673]))
})
]
})
});
map.addLayer(layer);
//initialize the popup
var container = document.getElementById('popup');
var content = document.getElementById('popup-content');
var overlay = new ol.Overlay({
element: container,
autoPan: true,
autoPanAnimation: {
duration: 250
}
});
map.addOverlay(overlay);
//display the pop with on mouse over
map.on('pointermove', function (event) {
if (map.hasFeatureAtPixel(event.pixel) === true) {
var coordinate = event.coordinate;
content.innerHTML = '<b>Hello world!</b><br />I am a popup.';
overlay.setPosition(coordinate);
}
else {
overlay.setPosition(undefined);
closer.blur();
}
});
/*开放式街道地图最新版本*/
var map=新ol.map({
target:'map',//div id
图层:[
新ol.layer.Tile({
来源:new ol.source.OSM()
})
],
视图:新的ol.view({
中心:Lonlat的其他项目([4.35247,52.520008]),
缩放:4
})
});
//在地图上添加一个标记
var layer=新ol.layer.Vector({
来源:新ol.source.Vector({
特点:[
新ol.功能({
几何:新的ol.geom.Point(LONLAT([4.35247,50.84673])的ol.proj
}),
新ol.功能({
几何:新的ol.geom.Point(LONLAT([4.35247,52.84673])的ol.proj
})
]
})
});
map.addLayer(层);
//初始化弹出窗口
var container=document.getElementById('popup');
var content=document.getElementById('popup-content');
var overlay=新ol.overlay({
元素:容器,
自动扫描:是的,
自动规划:{
持续时间:250
}
});
map.addOverlay(覆盖);
//在鼠标悬停的情况下显示弹出窗口
map.on('pointermove',函数(事件){
if(map.hasFeatureAtPixel(event.pixel)==true){
var坐标=event.coordinate;
content.innerHTML='你好,世界!
我是一个弹出窗口';
叠加。设置位置(坐标);
}
否则{
覆盖设置位置(未定义);
closer.blur();
}
});
修复了此问题,问题来自本地路径。如果这可以帮助任何人,我将其添加到我的代码中
layer.setStyle(new ol.style.Style({
image: new ol.style.Icon({
src: 'https://wiki.openstreetmap.org/w/images/0/0c/Hgv.png'
})
}));