通过遵循示例,我已经向我的地图添加了一个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访问web服务器上的页面时,没有控件出现,并且检查源代码时,控件的HTML为空:
<div class="mapboxgl-ctrl mapboxgl-ctrl-group"></div>
而在本地主机上,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的内容位置设置,该网站没有因为请求位置而被屏蔽。
发布于 2017-11-24 05:07:03
..。不幸的是,即使服务器在https上,chrome也拒绝来自Mapbox的地理定位,试试这个例子:
https://www.mapbox.com/mapbox-gl-js/example/locate-user/
在这里,位置默认设置为Ask
我从来没有拒绝过我的位置
奇怪的是,我在FireFox和Safari上测试过,它工作得很完美!
https://stackoverflow.com/questions/42389348
复制相似问题