我按照示例在地图中添加了Mapbox geolocation control。我的代码如下:
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v9',
minZoom: 5,
maxZoom: 14,
center: [-2.0, 53.3],
});
map.addControl(new mapboxgl.GeolocateControl());
当页面位于localhost时,控件显示并且地理定位在Chrome上正常运行。在Firefox和Safari上将页面上传到我的Web服务器时,它也可以正常工作。
但是使用Chrome访问网络服务器上的页面,不会出现任何控件,并检查控件的HTML是否为空:
<div class="mapboxgl-ctrl mapboxgl-ctrl-group"></div>
而在localhost上,HTML看起来像这样:
<div class="mapboxgl-ctrl mapboxgl-ctrl-group">
<button class="mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate"
type="button" aria-label="Geolocate"></button>
</div>
Chrome中没有控制台错误,地图的其余部分工作正常:只是控件没有出现。我检查了Chrome的内容位置设置,并且未阻止该网站询问位置。
答案 0 :(得分:0)
...遗憾的是,即使服务器位于https上,Chrome也拒绝了Mapbox的地理位置,请尝试以下示例:
https://www.mapbox.com/mapbox-gl-js/example/locate-user/
此处的位置默认设置为Ask