Italian [B4J] Come sapere se posizione bici/auto e all'interno 'zona' precedentemente definita?

amorosik

Well-Known Member
Licensed User
Date un'occhiata a questo post Mappa taxi con 'zone'
Dopo aver definito le zone (i poligoni colorati) su una jGoogleMaps, il sistema consente di registrare quando un mezzo e' all'interno della zona oppure no
Come realizzare una funzione che, data la posizione latitudine/longitudine del mezzo, mi restituisca si/no per segnalare la posizione interna ad una 'zona' ?
Da notare che una 'zona' potrebbe avere anche forma grandemente diversa dalla classica trapezoidale ottenibile con quattro linee
 

LucaMs

Expert
Licensed User
Dato un'occhiata (e sarei curioso di sapere quanti abbiano acquistato quel sorgente).

Purtroppo non mi sono mai divertito con quella robetta, che appunto dovrebbe essere qualcosa di piacevole da sviluppare.
Ho trovato subito questa classe:
https://www.b4x.com/android/forum/t...k-if-gps-location-is-inside-a-polygon.117625/
che potrebbe fare al caso tuo (chiaramente non l'ho provata).
Da notare che una 'zona' potrebbe avere anche forma grandemente diversa dalla classica trapezoidale ottenibile con quattro linee
Dice "inside a polygon", ergo deduco, suppongo e spero che sia effettivamente un polygono e non solo un quadrato.
 

oparra

Well-Known Member
Licensed User
Funziona solo per un poligono.


e non per un poligono all'interno di un altro poligono o poligoni che si intersecano tra loro come ho discusso in quel post.

Dai un'occhiata a questo post:


Esempio due poligoni intersecanti.
La domanda in quale poligono si trova il marker???
1612583849881.png


esempio utile per comprendere l'uso dei poligoni


scusa per il mio italiano
🤪🤪🤪🤪
 
Last edited:

udg

Expert
Licensed User
La domanda in quale poligono si trova il marker???
In entrambi :)
In fondo, nell'ottica del geofence, il marker rispetta sia i confini del primo che del secondo poligono.
E' come l'intersezione di due insiemi; quei punti possono essere considerati, in funzione di cosa stiamo cercando/guardando, come appartenenti al primo insieme, al secondo insieme o alla loro intersezione. E' il problema che dice quale "gruppo" guardare.

Nel caso del geofence, la domanda, in genere, è: "l'oggetto si trova ancora nei confini che ho definito?". Quindi, se anche esistesse un poligono sovrapposto o più ampio, non importerebbe perchè io sto testando su uno specifico poligono.

ps: se l'idea di base è costruire una specie di antifurto..basterebbe caricare la bici/auto su un camion opportunamente predisposto e tutto ciò che rimarrebbe sarebbe la possibilità di allertarsi se l'oggetto manca di rispondere ad un segnale di ping
 

oparra

Well-Known Member
Licensed User
La risposta corretta è all'interno del poligono 2 (post #2)

Mi sono imbattuto in altri casi di geometria.

Questo è più facile.

un poligono all'interno di un altro poligono.

1612618488491.png


In questo caso.

Registrare.
1. Ingresso al poligono più grande.
2. Ingresso al poligono più piccolo.

Partenza:
1. Uscita poligonale più piccola.
2. Ingresso al poligono più grande.
3. Uscita poligonale più grande.

Saluti.
 
Last edited:

oparra

Well-Known Member
Licensed User
Nel caso del geofence, la domanda, in genere, è: "l'oggetto si trova ancora nei confini che ho definito?". Quindi, se anche esistesse un poligono sovrapposto o più ampio, non importerebbe perchè io sto testando su uno specifico poligono.
No, perché se il veicolo è in movimento, indica in quale poligono è entrato o uscito.

ps: se l'idea di base è costruire una specie di antifurto..basterebbe caricare la bici/auto su un camion opportunamente predisposto e tutto ciò che rimarrebbe sarebbe la possibilità di allertarsi se l'oggetto manca di rispondere ad un segnale di ping
e in caso di furto del carico di moto / auto in un camion, il GPS AVL smette di riferire all'ufficio centrale e viene attivato un allarme.

Saluti.
 

udg

Expert
Licensed User
Scusa ma non sono d'accordo.
Nell'immagine di cui al post #3 entrambe le seguenti proposizoni sono valide:
- il veicolo non ha lasciato il (o si trova all'interno del) poligono 1
- il veicolo si trova all'interno del poligono 2
Ovviamente vale anche il contrario. Ma ciò è dovuto a come sono disegnati i poligoni, ovvero alla loro sovrapposizione parziale.

Se il mio scopo è semplicemente controllare che il marker si trovi "ancora" all'interno di un poligono, otterrò risposta positiva qualunque sia il poligono di test.
Se voglio sapere come si stia muovendo, sapendo della sovrapposizione, dovrei testare entrambe lecondizioni così da capire se vado da 1 a 2 o viceversa.

Per l'antifurto, concordo. E' ciò che dicevo anch'io. Se il server non riceve ping (o simili segnali dal veicolo) può presumere un furto (ma anche un malfunzionamento) e far scattare la verifica.
 

oparra

Well-Known Member
Licensed User
Scusa ma non sono d'accordo.
Nell'immagine di cui al post #3 entrambe le seguenti proposizoni sono valide:
- il veicolo non ha lasciato il (o si trova all'interno del) poligono 1
- il veicolo si trova all'interno del poligono 2
Ovviamente vale anche il contrario. Ma ciò è dovuto a come sono disegnati i poligoni, ovvero alla loro sovrapposizione parziale.
Dimmi su quale poligono si trova il marker.

poligono 1 o 2.

1612621291298.png
 
Last edited:

udg

Expert
Licensed User
Quello che dicevo è che in un caso simile non hai la risposta univoca "il marker è nel poligono X" perchè sono vere contemporaneamente entrambe:
- il marker è nel poligono 1
- il marker è nel poligono 2

Credo dipenda dal tipo di applicazione se porre una domanda relativa ad uno specifico poligono.
Ammettiamo che in origine fosse completamente nell'area del poligono 1 e che si muova verso il poligono 2.
Avrei all'inzio:
poligono 1: true
poligono 2: false
Poi (come in figura). Questo mi direbbe che sto andando da 1 a 2
poligono 1: true
poligono 2: true
Ed, eventualmente, finirei con
poligono 1: false
poligono 2: true

Capisco che la tua idea sia: " se da poligono 1 si è mosso superando il confine di poligono 2, anche se è ancora in una fascia che appartiene ad entrambi i poligoni, io considero valido solo il dato relativo a poligono 2 proprio a causa del passaggio del confine". Un po' come se poligono2 prenda in carico (diventi responsabile) del marker a partire dal suo confine.
Ho compreso bene il punto che sollevavi? La questione, per te, dipende dal moto del marker?

ps: redo che le torri di controllo facciano qualcosa di simile con lo spazio aereo. Ma, per evitare problemi, credo anche che si dicano esplicitamente quando l'aereo è seguito/controllato da una o dall'altra.
 

udg

Expert
Licensed User
In quale cerchio è il punto?
Esattamente la situazione degli insiemi che dicevo all'inizio.
Potremmo dire che è in A (come se B non esistesse).
Potremmo dire che è in B (come se A non esistesse)
Potremmo dire che si trova nell'insieme intersezione di A e B, che di suo non è né A nè B
Oppure dire che si trova contemporaneamente in A e B
Alla fine, dipende da cosa ho bisogno di verificare e quindi dall'applicazione. Non è più una questione di geometria o insiemistica, ma la ricerca di una risposta ad un'esigenza reale. E ciascuna di quelle risposte può essere valida, in funzione di una specifica domanda.
 
Last edited:

oparra

Well-Known Member
Licensed User
Si dice generalmente che il punto sia dentro.

se è più vicino al centroide del cerchio o del poligono.
 

oparra

Well-Known Member
Licensed User
Esattamente la situazione degli insiemi che dicevo all'inizio.
Potremmo dire che è in A (come se B non esistesse).
Potremmo dire che è in B (come se A non esistesse)
Potremmo dire che si trova nell'insieme intersezione di A e B, che di suo non è né a nè B
Oppure dire che si trova contemporaneamente in A e B
Alla fine, dipende da cosa ho bisogno di verificare e quindi dall'applicazione. Non è più una questione di geometria o insiemistica, ma la ricerca di una risposta ad un'esigenza reale. E ciascuna di quelle risposte può essere valida, in funzione di una specifica domanda.
Dato che ho lavorato per 10 anni nella sicurezza del trasporto merci, per grandi compagnie minerarie, non ho potuto dare la tua risposta ai miei clienti.
Mi dispiace.
 

amorosik

Well-Known Member
Licensed User
La risposta corretta è all'interno del poligono 2 (post #2)

Mi sono imbattuto in altri casi di geometria.

Questo è più facile.

un poligono all'interno di un altro poligono.

View attachment 107535

In questo caso.

Registrare.
1. Ingresso al poligono più grande.
2. Ingresso al poligono più piccolo.

Partenza:
1. Uscita poligonale più piccola.
2. Ingresso al poligono più grande.
3. Uscita poligonale più grande.

Saluti.

E perche' consideri la risposta corretta sia "dentro al poligono 2" ?
 

udg

Expert
Licensed User
Non metto in dubbio la tua professionalità o competenza; anzi, è un bene che tu abbia un'esperienza diretta di applicazione concreta di questi concetti.
E certamente, in quell'ambito, c'era una domanda specifica cui dare risposta e questa era univoca.
Però, se torniamo al post #1, la domanda era: fornite delle coordinate e il riferimento di una zona (poligono), le coordinate sono dentro o fuori quel poligono?
E, graficamente, in tutti gli esempi visti finora la risposta dovrebbe essere sempre "dentro".
 

Star-Dust

Expert
Licensed User
Dato che ho lavorato per 10 anni nella sicurezza del trasporto merci, per grandi compagnie minerarie, non ho potuto dare la tua risposta ai miei clienti.
Mi dispiace.
Potevi semplicemente dire di disegnate i poligoni meglio in modo che non si sovrappensiero. 😂
Scusa la battuta 😜

Comunque Oprarra tu stai parlando della localizzazione dei veicoli di trasporto tra partenza e destinazione.
In questo caso si calcola la distanza fra il veicolo e le due aree e determinando quella minore. Si può considerare all'interno di un area se il veicolo è più vicino al centro dell'area esaminata rispetto all'altra sovrapposta

Nel caso di un furto si considera rubata se supera i confini della proprietà. Non è rubata se si trova nel tuo garage se il tuo garage è più vicino al giardino del vicino piuttosto che al centro della villetta
 

oparra

Well-Known Member
Licensed User
Potevi semplicemente dire di disegnate i poligoni meglio in modo che non si sovrappensiero. 😂
Scusa la battuta 😜

Comunque Oprarra tu stai parlando della localizzazione dei veicoli di trasporto tra partenza e destinazione.
In questo caso si calcola la distanza fra il veicolo e le due aree e determinando quella minore. Si può considerare all'interno di un area se il veicolo è più vicino al centro dell'area esaminata rispetto all'altra sovrapposta

Nel caso di un furto si considera rubata se supera i confini della proprietà. Non è rubata se si trova nel tuo garage se il tuo garage è più vicino al giardino del vicino piuttosto che al centro della villetta
ben detto

Saluti,
 
Top