gpt4 book ai didi

javascript - Google Map API setCenter 方法不起作用

转载 作者:行者123 更新时间:2023-11-30 07:24:38 31 4
gpt4 key购买 nike

所以我必须在我的页面上添加一个“居中”按钮,单击该按钮时, map 将通过使用 setCenter 方法以图钉为中心。但是,在我单击我的按钮后, map 变为空白而不是显示中心。

这是我的代码。

如何解决问题?提前致谢!

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
function init() {
var addButton = document.getElementById("setcenter");
addButton.onclick = handleSetCenterButtonClicked;
getMyLocation();
}


window.onload = init;

function getMyLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(displayLocation);
} else {
alert("Oops, no geolocation support");
}
}

function displayLocation(position) {
showMap(position.coords);
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var div = document.getElementById("location");
div.innerHTML = "You are at Latitude: " + latitude + ", Longitude: " + longitude;
}

var map;
function showMap(coords) {
var googleLatAndLong = new google.maps.LatLng(coords.latitude, coords.longitude);
var mapOptions = {
zoom : 18,
center : googleLatAndLong,
mapTypeId : google.maps.MapTypeId.SATELLITE
};
var mapDiv = document.getElementById("map");
map = new google.maps.Map(mapDiv, mapOptions);

addMarker(googleLatAndLong);
}

var marker;
var markerArray = new Array();

function addMarker(latLong) {
var markerOptions = {
position : latLong,
map : map
};
marker = new google.maps.Marker(markerOptions);

markerArray.push(marker);
}

// this is my setCenter method function
function handleSetCenterButtonClicked(coords) {

var latLng = new google.maps.LatLng(coords.latitude, coords.lotitude);
map.setCenter(latLng);
}

// this is my setCenter method function
</script>

最佳答案

问题出在你的函数中(除了错别字之外):

  function handleSetCenterButtonClicked(coords) {

var latLng = new google.maps.LatLng(coords.latitude, coords.lotitude);
map.setCenter(latLng);
}

点击 coordsMouseEvent 类型,它没有任何关于 lat/lng 的信息。它与来自 google api 的 MouseEvent 不同。不清楚您要将中心设置为哪个值。打开您页面的用户的位置?还是其他一些值?

如果你想在他四处拖动后将中心定位到用户位置,你可以添加全局变量:

var yourPos;

在函数 showMap() 中将其设置为已知值:

yourPos = googleLatAndLong;

并在点击处理程序中使用它:

  function handleSetCenterButtonClicked(coords) {

//var latLng = new google.maps.LatLng(coords.lat(), coords.lng());
//map.setCenter(latLng);

map.setCenter(yourPos);
}

此外,如果用户不想分享他的位置,则不会处理任何情况。

关于javascript - Google Map API setCenter 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21571416/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com