簡體   English   中英

如何更新谷歌地圖標記位置?

[英]How to update google maps marker position?

所以我正在嘗試為學校項目建立一個網站,其中一部分需要獲取用戶位置並將其顯示在地圖上。 我已經設法使用 geolocator api 獲取用戶位置,但似乎無法更新標記,因為即使在獲得新的緯度后它仍保留在默認位置。 任何幫助將不勝感激 :)

我采用了默認位置(加利福尼亞)在加載網站時顯示(它成功)並設法獲取用戶位置(使用控制台驗證以顯示結果),但代碼仍顯示加利福尼亞標記。

<script type="text/javascript">
          var latitude = 36.8;
          var longitude = -119.4;
          var currloc;

          function getLoc() {

            if ("geolocation" in navigator) {
              navigator.geolocation.getCurrentPosition(function(position) {
                latitude = (Math.round(position.coords.latitude*100))/100;
                longitude = (Math.round(position.coords.longitude*100))/100;
                currloc = {lat: latitude, lng: longitude};
                console.log("Geolocation supported");

                console.log(latitude);
                console.log(longitude);
              });
            }
            else {
              latitude = 0.0;
              longitude = 0.0;
              console.log("Geolocation not supported");
            }
          }

          function mapInit() {
              currloc = {lat: latitude, lng: longitude};
              var map = new google.maps.Map(document.getElementById("map"), {zoom: 4, center: currloc, disableDoubleClickZoom: true,});
              var mark = new google.maps.Marker({
                position: currloc,
                map: map,
                title: latitude+', '+longitude
              });
            }

        </script>

我希望標記會隨着 initMap 函數的 currloc 值發生變化而發生變化,但是在地圖上它沒有顯示新位置。

getLoc() 是異步的。 調用回調后 Currloc 發生變化。 我假設您同步調用了 mapInit。 在回調中調用標記

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM