JavaScriptで提案してください、navigator.geolocation.watchPosition()
方法は、デバイスの位置が変化するたびに自動的に呼び出されるハンドラ関数を登録するために使用されています。オプションで、エラー処理コールバック関数を指定することもできます。
構文:
navigator.geolocation.watchPosition(success[, error[, options]])
そして、あなたの問題では、このコードを使用することができます。あなたは、GoogleのAPIキーでYOUR-API-KEY
を置き換える必要があり、完全なケアう:
<!DOCTYPE html>
<html>
<head>
<title>Geolocation</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
var marker = new google.maps.Marker({
position: pos,
map: map,
title: "Test"
});
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 6
});
getLocationUpdate();
}
function showLocation(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
marker.setPosition(pos);
map.setCenter(pos);
alert("Latitude : " + pos.lat + " Longitude: " + pos.lng);
}
function errorHandler(err) {
if(err.code == 1) {
alert("Error: Access is denied!");
}
else if(err.code == 2) {
alert("Error: Position is unavailable!");
}
}
function getLocationUpdate(){
if(navigator.geolocation){
// timeout at 60000 milliseconds (60 seconds)
var options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0
};
var geoLoc = navigator.geolocation;
geoLoc.watchPosition(showLocation, errorHandler, options);
}
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR-API-KEY&callback=initMap">
</script>
https://developers.google.com/maps/documentation/javascript/markers "マーカーをドラッグ可能にする" セクション – ZiTAL
複数のマーカーのGoogleマップを検索しようとしましたか? ? – HoangHieu