【发布时间】:2018-04-19 22:39:12
【问题描述】:
我有一些有效的 Javascript Google Maps API 代码,我只是想让我的标记随着用户地理位置的变化而不断移动。我看过无数的教程,但无法让它工作,我是 JS 新手,所以我尝试做的任何小改动都会破坏应用程序。谁能建议如何在下面的代码中实现这一点:
<!DOCTYPE html>
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css"></link>
<link rel="icon" href="images/icon1.png">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<link rel="icon" href="mada">
</head>
<body>
<div id="map"></div>
<script>
var map, infoWindow;
function initMap() {
var uluru = {lat: 53.807081, lng: -1.555848};
map = new google.maps.Map(document.getElementById('map'), {
center: uluru,
zoom: 16
});
var marker = null;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
//Mark User Location
if (marker == null) {
var marker = new google.maps.Marker({
position: {
lat: position.coords.latitude,
lng: position.coords.longitude
},
map: map,
icon:'http://me15sk.leedsnewmedia.net/betterways/personal_icon.png'
});
} else {
marker.setPosition(map.getCenter());
}
//Popup Marker
marker.addListener('click', function(){
infoWindow.open(map, marker);
});
var infoWindow = new google.maps.InfoWindow({
content: '<h2>My Location</h2>'
});
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
}
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=---&callback=initMap">
</script>
</body>
</html>
【问题讨论】:
-
您需要使用 watchPosition() 来获取更新。
-
我已经尝试了 watchPosition,但没有成功。
标签: javascript api geolocation location maps