[Gfoss] Aggiunere la geolocalizzazione dell'utente in un form di GeoDjango

Massimiliano Moraca massimilianomoraca a gmail.com
Mar 24 Set 2019 11:04:03 CEST


Usando la console l'errore fa riferimento a questa riga che sta subito
sotto var = geolocation:
>
> projection: map.getView().getProjection(),


Il giorno mar 24 set 2019 alle ore 11:01 Massimiliano Moraca <
massimilianomoraca a gmail.com> ha scritto:

> Ciao Amedeo, grazie per la risposta.
> Quel punto interrogativo c'è anche nel codice della mappa che mi funziona,
> il codice proviene da lì, la uso come muletto per i test.
>
> Il giorno mar 24 set 2019 alle ore 10:43 Amedeo Fadini <amefad a gmail.com>
> ha scritto:
>
>> Ciao in questa riga
>>
>> positionFeature.setGeometry(pos ?
>>
>> è capitato un punto di domanda alieno, verifica che non ci sia anche nel
>> codice effettivo.
>>
>> Il codice javascript lo dovresti mettere nel template in maniera che esca
>> una pagine html valida, per quanto ne so in javascript è sempre questione
>> di tempi, dovrsti fare in modo che quando creai il nuovo vettore l'oggetto
>> mappa sia già creato.
>>
>> Ad ogni modo da console dovresti trovare degli errori che ti guidano
>> sulla strada giusta
>>
>> Amefad
>>
>> Il giorno mar 24 set 2019 alle ore 08:39 Massimiliano Moraca <
>> massimilianomoraca a gmail.com> ha scritto:
>>
>>> Buongiorno a tutti,
>>> sto provando a fare quanto in oggetto ma ho difficoltà a capire dove
>>> inserire lo script per farlo. Lo script che voglio usare è già
>>> correttamente in uso su altre mie mappe ma sono mappe che non prevedono
>>> l'aggiunta di oggetti da parte dell'utente.
>>> Qui[1] ho inserito quello che ho fatto; in pratica ho creato un mio
>>> widget
>>> sulla base di OpenLayersWidget modificando sia il template che il
>>> JavaScript. Il widget customizzato funziona. Successivamente ho deciso di
>>> inserire sia lo script per il geocoder che quello per la
>>> geolocalizzazione
>>> dell'utente in modo da facilitarlo nell'aggiunta dell'oggetto. Il
>>> geocoder
>>> funziona ma quello che non riesco a far funzionare è la geolocalizzazione
>>> dell'utente.
>>> In pratica non riesco a capire dove inserire il codice per far funzionare
>>> correttamente la gelocalizzazione. A livello di JavaScript non è che sia
>>> così ferrato...
>>>
>>> Per le altre mappe ho creato un bottone che compare su mappa; l'utente ci
>>> clicca su e viene geolocalizzato:
>>>
>>> >     <div class="geolocation" id="geolocateme">
>>> >       <button class="btn geolocation-button">
>>> >         <i class="fas fa-globe"></i>
>>> >       </button>
>>> >     </div>
>>>
>>>
>>> il tutto avviene usando questo script:
>>>
>>> >         var geolocation = new ol.Geolocation({
>>> >               projection: map.getView().getProjection(),
>>> >               tracking: false,
>>> >               trackingOptions: {
>>> >                 enableHighAccuracy: true,
>>> >                 maximumAge: 5000
>>> >               }
>>> >             });
>>> >           var button = document.getElementById('geolocateme');
>>> >           var handleGetPosition = function(e) {
>>> >           var trackingwasalreadyon = geolocation.getTracking();
>>> >           if(trackingwasalreadyon){
>>> >               geolocation.setTracking(false);
>>> >               } else
>>> >               { geolocation.setTracking(true); getPosition();
>>> >               }
>>> >           };
>>> >           button.addEventListener('click', handleGetPosition, false);
>>> >           button.addEventListener('touchstart', handleGetPosition,
>>> false);
>>> >         function getPosition() {
>>> >             var positionFeature = new ol.Feature();
>>> >             positionFeature.setStyle(new ol.style.Style({
>>> >               image: new ol.style.Circle({
>>> >                 radius: 6,
>>> >                 fill: new ol.style.Fill({
>>> >                   color: '#fa0000'
>>> >                 }),
>>> >                 stroke: new ol.style.Stroke({
>>> >                   color: '#fff',
>>> >                   width: 2
>>> >                 }),
>>> >               }),
>>> >             }));
>>> >             geolocation.on('change:position', function() {
>>> >               var pos = geolocation.getPosition();
>>> >               positionFeature.setGeometry(pos ?
>>> >                   new ol.geom.Point(pos) : null);
>>> >               view.setCenter(pos);
>>> >               view.setZoom(12);
>>> >             });
>>> >             new ol.layer.Vector({
>>> >               map: map,
>>> >               source: new ol.source.Vector({
>>> >                 features: [
>>> >                   positionFeature,
>>> >                 ]
>>> >               })
>>> >             });
>>> >         };
>>>
>>>
>>> E questo è quello che sto provando ad implementare nel form. Qualcuno qui
>>> ha esperienza in questo?
>>>
>>>
>>>
>>> -----
>>> [1]
>>>
>>> https://stackoverflow.com/questions/58063527/how-to-add-geolocation-to-a-geodjango-form
>>> _______________________________________________
>>> Gfoss a lists.gfoss.it
>>> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>> Questa e' una lista di discussione pubblica aperta a tutti.
>>> I messaggi di questa lista non hanno relazione diretta con le posizioni
>>> dell'Associazione GFOSS.it.
>>> 764 iscritti al 23/08/2019
>>
>>


Maggiori informazioni sulla lista Gfoss