Mapbox GL JS:Geolocation无法在Chrome中运行?

时间:2017-02-22 10:59:57

标签: google-chrome mapbox-gl-js

我按照示例在地图中添加了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的内容位置设置,并且未阻止该网站询问位置。

1 个答案:

答案 0 :(得分:0)

...遗憾的是,即使服务器位于https上,Chrome也拒绝了Mapbox的地理位置,请尝试以下示例:

https://www.mapbox.com/mapbox-gl-js/example/locate-user/

此处的位置默认设置为Ask

Here the location is setted by default as Ask

我从来没有拒绝过我的位置 I never refused to get my location 它很奇怪,我在FireFox和Safari上测试过,它运行得很好!