更新谷歌地图位置通过javascript

update google map position via javascript

本文关键字:javascript 位置 谷歌地图 更新      更新时间:2023-09-26

我可以更新谷歌地图标记的位置,但我不能更新谷歌地图的位置。它不会将地图居中到给定的纬度和经度位置

var myLatlng;
var map;
var infowindow;
var latitude;
var longtitude;
var marker;
loadMap();
function loadMap()
{
    myLatlng = new google.maps.LatLng(54.91252, -1.37664);
    var mapOptions = {
        zoom: 17,
        center: myLatlng
    };
    map = new google.maps.Map(document.getElementById("googlemaps"), mapOptions);
    var contentString = '<h5>The Mew </h5>';
    infowindow = new google.maps.InfoWindow({
        content: contentString
    });
    marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: "The Mew",
        animation: google.maps.Animation.DROP
    });
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });
    infowindow.open(map, marker);
}
function updatePosition()
{
    latitude = document.getElementById('latitude');
    longtitude = document.getElementById('longtitude');
    myLatlng = new google.maps.LatLng(latitude, longtitude);
    marker.setPosition(myLatlng);
    map.setCenter(myLatlng);
}

  <input type="text" id="latitude" />
   <input type="text" id="longtitude" />
   <a onclick="updatePosition()" >update </a>

updatePosition中,您分配给纬度和经度的信息是这些输入字段的DOM节点,但您希望分配这些输入的。此外,您需要确保从这些值中抓取的文本被转换为数字,以便LatLng正确地接受它们。你可以用parseInt。别忘了基数

function updatePosition() {
  latitude = parseInt(document.getElementById('latitude').value, 10);
  longtitude = parseInt(document.getElementById('longtitude').value, 10);
  myLatlng = new google.maps.LatLng(latitude, longtitude);
  marker.setPosition(myLatlng);
  map.setCenter(myLatlng);
}

您可以使用jQuery获取输入的值

function updatePosition()
 {
   var lat= $('#latitude').val();
   var lng= $('#longtitude').val();
   myLatlng = new google.maps.LatLng(lat,lng);
   marker.setPosition(myLatlng);
   map.setCenter(myLatlng);
 } 

Javascript中需要使用parseInt它会解析字符串并返回整数

  lat = parseInt(document.getElementById('latitude').value,10);
  lng = parseInt(document.getElementById('longtitude').value,10); 

DEMO