Tengo este javascript que obtiene la longitud y latitud de un mapa de Google:
<script> // Get element references var confirmBtn = document.getElementById('confirmPosition'); var onClickPositionView = document.getElementById('onClickPositionView'); var latonIdlePositionView = document.getElementById('latOnIdlePositionView'); var longonIdlePositionView = document.getElementById('longOnIdlePositionView'); // Initialize locationPicker plugin var lp = new locationPicker('map', { setCurrentPosition: true, // You can omit this, defaults to true }, { zoom: 15 // You can set any google map options here, zoom defaults to 15 }); // Listen to map idle event, listening to idle event more accurate than listening to ondrag event google.maps.event.addListener(lp.map, 'idle', function (event) { // Get current location and show it in HTML var location = lp.getMarkerPosition(); latOnIdlePositionView.innerHTML = location.lat; longOnIdlePositionView.innerHTML = location.lng; }); </script>Este es el HTML que tengo para que un usuario defina su ubicación:
<form method="POST" action="{% url 'geolocate' %}"> {% csrf_token %} <div class="card-header"> <div class="float-start"> <h3 class="card-title">Me localiser</h3> </div> </div> <div class="card-body no-padding"> <div id="map"></div> <p>Latitude: <span id="latOnIdlePositionView"></span> Longitude: <span id="longOnIdlePositionView" ></span></p> </div> <div class="card-footer text-end"> <button type="submit" class="btn btn-primary">Mettre à jour</button> </div> </form>Esta es mi vista:
def geolocate(request): if request.method == 'POST': lat = request.POST.get('lat_kw') long = request.POST.get('long_kw') caccount = Account.objects.get(username=request.user.username) caccount.lat = lat caccount.long = long caccount.save() return redirect('monprofil')Lo que quiero hacer es obtener el valor de los tramos latOnIdlePositionView y longOnIdlePositionView y ponerlos en mi vista.
Sé cómo hacer esto si tengo datos en un campo de entrada (usando el nombre), pero no sé cómo hacerlo usando intervalos.
según el comentario de @raphael
Agregue esta etiqueta de formulario interior en HTML
<input type='hidden' name='lat_kw' id='lat_kw' value=''> <input type='hidden' name='long_kw' id='long_kw' value=''>JavaScript
document.getElementById('lat_kw').value = location.lat; document.getElementById('long_kw').value = location.lng;Entonces eres bueno para ir