Leafletjs 显示我的位置标记而不是硬编码位置

问题描述 投票:0回答:1

我正在尝试 Leaflet.js,我有一张带有如下标记的地图:

var marker = new L.marker([5.897818, -1.120009],{
    draggable: true,
    autoPan: true
}).addTo(mymap);

这显示正常,但我希望它出现在我当前的位置而不是上面的硬编码位置。

我该怎么做?

javascript geolocation leaflet maps
1个回答
2
投票

您需要的是利用 Geolocation API 并使用其结果来创建标记。

var mymap = L.map('mapid').setView([51.505, -0.09], 13);

navigator.geolocation.getCurrentPosition(position => {
  const { coords: { latitude, longitude }} = position;
  var marker = new L.marker([latitude, longitude], {
    draggable: true,
    autoPan: true
  }).addTo(mymap);

  console.log(marker);
})

通过 Stackoverflow 使用 API 时存在一些问题,因此这里有一个可用的 JSFiddle 的链接。

© www.soinside.com 2019 - 2024. All rights reserved.