gpt4 book ai didi

javascript - OpenLayers 4 仅获取本地主机上的用户位置

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:55 26 4
gpt4 key购买 nike

因此,我正在使用 OpenLayers 4 并尝试获取用户位置以在 map 上设置标记。在本地主机上,它工作正常,它跟踪用户的位置并在 map 上设置标记,但是当我从另一台设备通过本地 IP 访问该站点时,它甚至不请求使用 GPS 的权限。

这是代码:

function initMap(eId) {
map = new ol.Map({
target: eId,
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
controls: ol.control.defaults().extend([
new app.generateGeoJSONControl()
]),
view: new ol.View({
center: ol.proj.fromLonLat([-47.88281816303313, -15.79413706965552]),
zoom: 12
})
});
map.on('singleclick', click, this);
trackMe(map.getView());
};

function trackMe(view) {
var geolocation = new ol.Geolocation({
tracking: true
});
geolocation.on('change:position', function (evt) {
var coordinate = geolocation.getPosition();
userLonLat = coordinate;
setMarker({
longitude: coordinate[0],
latitude: coordinate[1],
id: -1
}, '/assets/marker-user.png', 1000);
});
};


function setMarker(ua, imageSrc, zIndex){
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([parseFloat(ua.longitude), parseFloat(ua.latitude)], 'EPSG:4326', 'EPSG:3857')),
data: ua,
});
iconFeature.setId(ua.id);
var vectorSource = new ol.source.Vector({
features: [iconFeature]
});

var iconStyle = new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 27],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 1,
src: imageSrc
}))
});

var vectorLayer = new ol.layer.Vector({
source: vectorSource,
style: iconStyle
});

if(zIndex){
vectorLayer.setZIndex(zIndex);
}

map.addLayer(vectorLayer);
}

最佳答案

显然与网站证书有关。由于我的网站没有证书,浏览器不允许它获取用户的位置。我尝试过 Chrome、Firefox、Edge 和 Safari,唯一能让网站获取用户位置的是 Edge。

关于javascript - OpenLayers 4 仅获取本地主机上的用户位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43125573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com