Leaflet API を使用して Web アプリを構築したいと考えています。まず、ユーザーが IP で位置情報を取得し、それを受け入れると、HTML5 の位置情報で自分の位置を更新しようとします (精度が向上します)。
私の問題は、マーカーの位置が地図上で更新されず、次のコードがエラーなしで失敗することです。リーフレットのドキュメントから何百もの異なる構文とメソッドを試して、マーカーの位置を更新しました (つまり、setLatLng) が、成功しませんでした。私のコードの何が問題なのかを理解したいと思います。
私の問題は次のようにすることで解決されます:
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
var newLatLng = new L.LatLng(lat, lng);
marker.setLatLng(newLatLng);
古いコードは次のとおりです。
//initial IP based geolocation
var lat = google.loader.ClientLocation.latitude;
var lng = google.loader.ClientLocation.longitude;
//place marker on the map
var marker = L.marker([lat,lng]).addTo(map);
//start HTML5 geolocation
map.locate({setView: true, maxZoom: 16});
function onLocationFound(e) {
var marker = L.marker([e.latlng.lat,e.latlng.lng]).update(marker);
alert ('New latitude is ' + e.latlng.lat)
}
map.on('locationfound', onLocationFound);