如何使用 Mapbox 通过弹出框获取当前位置

Posted

技术标签:

【中文标题】如何使用 Mapbox 通过弹出框获取当前位置【英文标题】:How To Get Current Location With Pop Up Box Using Mapbox 【发布时间】:2021-04-10 21:08:31 【问题描述】:

是否可以使用像 vanilla javascript 这样的 mapbox 获取当前位置(纬度和经度)?我想要的是第一张图片,但我认为使用香草 javascript 位置会使位置不准确,我想使用地图框,但它只提供使用必须首先显示地图的按钮。

所以,我想要的是如何在页面加载时或当用户单击按钮而不在 mapbox 上显示地图时获取用户当前位置(纬度和经度)。

【问题讨论】:

你不能,这是不道德的。您使用 JavaScript 所做的只是获取公共 IP 地理信息。 【参考方案1】:

您引用的 Mapbox 示例使用 Mapbox' GeoLocate Control,而后者又使用浏览器 Geolocation API 来确定当前位置。

因此,如果您不想在 Mapbox 地图上显示返回的位置,使用 Mapbox 的 Geolocate Control 没有任何优势。

如何在 html 页面中获取地理位置的示例:

<script>
var x = document.getElementById("demo");
function getLocation() 
  if (navigator.geolocation) 
    navigator.geolocation.getCurrentPosition(showPosition);
   else 
    x.innerHTML = "Geolocation is not supported by this browser.";
  


function showPosition(position) 
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;

</script>

【讨论】:

以上是关于如何使用 Mapbox 通过弹出框获取当前位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标单击位置打开弹出框

如何通过单击外部来关闭 Twitter Bootstrap 弹出窗口?

Mapbox:我想使用 Locationengine 来获取用户的当前位置,但它给我一个错误

如何使用鼠标悬停获取 div id 以显示弹出框?

如何通过单击栏按钮关闭弹出框

使用layer插件为啥弹出框没点确定就自动消失了