我可以更新谷歌地图标记位置,但我无法更新谷歌地图位置。它不会将地图置于给定的纬度和经度位置
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>
答案 0 :(得分:3)
在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);
}
答案 1 :(得分:1)
您可以使用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);