Мне нужно добавить обработчик щелчка к кнопке при условии, что он будет получать текущее местоположение пользователя с помощью API геолокации. Вот мой код, я пытаюсь использовать геолокацию, чтобы установить текущее местоположение пользователя на карте, но кнопка по некоторым причинам не работает. Кто-нибудь может указать, что я делаю неправильно, и помочь мне?
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" crossorigin=""/> <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js" integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA==" crossorigin=""></script> <style> #mapid { height: 600px; } </style> <script> const Mapping = { map : null, initializeMap : () => { Mapping.map = L.map('mapid').setView([51.505, -0.09], 13); L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>', subdomains: ['a','b','c'] }).addTo( Mapping.map ); }, resetLocation : ({lat,lon}) => { Mapping.map.setView([lat,lon], 13); } } window.onload = () => { Mapping.initializeMap(); userCode(); } function userCode() { // JS CODE START if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { let pos = { lat: position.coords.latitude, lng: position.coords.longitude }; Mapping.setPosition(pos); Mapping.open(Mapping.map); Mapping.map.setPosition(pos); }) } // JS CODE END } </script> </head> <body> <!-- HTML CODE GOES HERE--> <button onclick="userCode()">Get Location</button> <div id="mapid" style="width: 600px; height: 400px;"></div> </body> </html>
Используйте
Mapping.resetLocation({lat:pos.lat,lon:pos.lng});
Вместо
Mapping.setPosition(pos);