Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改默认标记OPENLAYERS 5_Javascript - Fatal编程技术网

Javascript 如何更改默认标记OPENLAYERS 5

Javascript 如何更改默认标记OPENLAYERS 5,javascript,Javascript,我正在尝试在OSM上显示一些标记。到目前为止,这是可行的,但我只是想根据本地路径中的另一个标记更改默认标记,但我不知道如何将其添加到代码中,我尝试了setStyle,但我不知道如何正确应用它。如果我也能设计图标的样式,那就太好了。 我还希望动态显示标记,因为每次通过 var layer = new ol.layer.Vector({source: new ol.source.Vector({ features: [ new ol.Feature({

我正在尝试在OSM上显示一些标记。到目前为止,这是可行的,但我只是想根据本地路径中的另一个标记更改默认标记,但我不知道如何将其添加到代码中,我尝试了
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'
    })
}));