#AutoTranslate
Descrizione breve
Il Location Information Service (LIR) secondo l’OJP 2.0 fornisce diverse ubicazioni in risposta a una richiesta. I dati di input essenziali (Request) sono:
- input testuale
- Tipi di oggetti consentiti
- Restrizioni geografiche/ponderazione
- Ulteriori restrizioni
L’output (response) è un elenco di oggetti con nomi, posizione geografica, attributi e probabilità.
Se la LocationInformationRequest viene utilizzata senza nome, ma con GeoPosition, Circle o Rectangle, sono supportati i tipi=»address», «stop» e «poi». Inoltre, una GeoPosition con filtro type=»address» fornisce esattamente un indirizzo con numero civico.
Descrizione tecnica
API-Explorer e altri riferimenti
Puoi provare le tue richieste – Open API Explorer.
Dettagli relativi ai singoli parametri per il Richiesta e la Risposta sono disponibili anche online sul sito ufficiale Pagina GitHub dalla VDV.
Richiesta
Esempio di una LocationInformation Request secondo l’OJP 2.0:
<?xml version="1.0" encoding="UTF-8"?>
<OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp ../../../../Downloads/OJP-changes_for_v1.1%20(1)/OJP-changes_for_v1.1/OJP.xsd">
<OJPRequest>
<siri:ServiceRequest>
<siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp>
<siri:RequestorRef>SKIplusDemo</siri:RequestorRef>
<OJPLocationInformationRequest>
<siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp>
<siri:MessageIdentifier>LIR-1a</siri:MessageIdentifier>
<InitialInput>
<Name>Bern</Name>
</InitialInput>
<Restrictions>
<Type>stop</Type>
<NumberOfResults>5</NumberOfResults>
</Restrictions>
</OJPLocationInformationRequest>
</siri:ServiceRequest>
</OJPRequest>
</OJP>
Descrizione degli elementi del OJPLocationInformationRequests:
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
siri:RequestTimestamp |
1:1 | Timestamp della richiesta, come Zulu-Time. |
<siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp> |
siri:MessageIdentifier |
0:1 | ID univoco del messaggio, per identificare la risposta. |
<siri:MessageIdentifier>LIR-1a</siri:MessageIdentifier> |
InitialInput/Name |
0:1 | Nome dell’oggetto. Se non viene indicato nessuno, si procede alla ricerca in base agli altri criteri.
Dove si usano più denominazioni, è possibile cercarle tutte. È possibile effettuare la ricerca sia per «Basilea» che per «Basilea FFS». Ad esempio, inserire «Biel» o «Bienne» in entrambi i campi. |
<InitialInput> |
InitialInput/GeoPosition |
0:1 | La posizione cercata con le geocoordinate (WGS84) |
<InitialInput> |
InitialInput/GeoRestriction/Circle |
0:1 | Una restrizione della ricerca a un determinato raggio. Ad esempio, selezionando il tipo corretto, è possibile indicare tutte le fermate in un raggio. Coordinate come WGS84. |
<GeoRestriction> |
InitialInput/GeoRestriction/Rectangle |
0:1 | Una restrizione della ricerca a un determinato rettangolo. Coordinate come WGS84. |
<InitialInput> |
PlaceRef |
0:1 | Un riferimento a un posto | v. tabella a parte |
Restrictions |
0:1 | Limitazioni da applicare | v. tabella a parte |
PlaceRif
Per una Request con una PlaceRif l’elemento necessario <Name> viene ignorato, viene analizzato solo il numero di riferimento.
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
siri:StopPointRef |
0:1 | Riferimento a uno ScheduledStopPoint.
Vengono ancora utilizzati solo SLOID; per StopPoint esteri nelle request e nella response possono ancora essere utilizzati numeri BPUIC. |
<PlaceRef> |
StopPlaceRef |
0:1 | Riferimento a una fermata. Vengono ancora utilizzati solo gli SLOID; per StopPlace esteri si possono ancora utilizzare i numeri BPUIC nella request e nella response. |
<PlaceRef> |
GeoPosition |
0:1 | Geoposizione come longitudine/latitudine |
<PlaceRef> |
Restrictions (PlaceParamStructure)
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
Type |
0:* | Digita gli oggetti da riconsegnare che cosa si sta cercando.
Esistono i seguenti tipi (PlaceTypeEnumeration):
Gli utilizzi principali sono stop e location. Con il tempo, i POI acquisiranno importanza (eventualmente specialmente per autosili e sharer). I veicoli in condivisione (monopattino elettrico, biciclette, auto) e le stazioni di ricarica possono ora essere richiamati come POI (v. il filtro PointOfInterest qui di seguito). Per l’address occorre prima determinare il nome esatto con un input generico. Poi occorre effettuare la ricerca con lo stesso nome e il tipo «address». Solo allora il codice di indirizzo ritorna. Si tratta però di un caso speciale che di norma non dovrebbe essere utilizzato. Né il codice di indirizzo né il TopographicPlaceRef sono rilevanti al di fuori della ricerca nell’OJP. |
<Type>stop</Type> |
Modes |
0:1 | Contiene un elemento di esclusione booleano. Se true, le modalità vengono escluse, altrimenti incluse.
Ulteriori dettagli: opentransportdata.swiss/…/ojptriprequest |
<Modes>
|
OperatorFilter |
0:1 | Un filtro per operatore. In futuro con SBOID. | n.d. |
TopographicPlaceRef |
0:1 | Viene usato per filtrare per località. Se è impostato almeno un riferimento, vengono cercati solo oggetti all’interno dei luoghi interessati. |
<TopographicPlaceRef>23011901:2</TopographicPlaceRef> |
PointOfInterestFilter |
0:1 | Utilizzando questo filtro è possibile trovare le località corrispondenti. 12/2024 Attualmente i routing con diverse modalità non sono ancora supportati. Successivamente saranno disponibili le seguenti modalità: Possibilità di accedere ai veicoli in condivisione (monopattini elettrici, biciclette, auto) e alle stazioni di ricarica in un raggio o in un rettangolo.
Struttura come illustrato nell’esempio a destra:
Attenzione: la query deve essere combinata con una GeoRestriction (Circle o Rectangle) e non con Name, GeoPosition o PlaceRef. |
<PointOfInterestFilter> |
NumberOfResults |
0:1 | Il numero di risultati.
Importante: stringhe di caratteri come «St. Gallen Haggen» e «St. Gallen, Haggen» sono equivalenti per la ricerca. Se viene intercettato un gruppo di risultati con la stessa probabilità (>0,5), il server restituisce tutti i risultati. Ciò significa che il numero effettivo di risultati può discostarsi dal risultato desiderato. Questo perché per NumberOfResults=1 e inserendo «St. Gallen, Haggen» devono essere restituite due fermate: «St. Gallen, Haggen» e «St. Gallen Haggen». |
<NumberOfResults>10</NumberOfResults> |
NumberOfResultsAfter & NumberOfResultsBefore |
0:1 | Il numero di risultati dopo l’ora specificata o prima, indipendentemente dal fatto che l’ora sia <Origin> o <Destination>. |
<NumberOfResults>10</NumberOfResults> |
IncludePtModes |
0:1 | Comunica al servizio che deve restituire le modalità disponibili per ogni fermata. L’impostazione di default è false. |
<IncludePtModes>true</IncludePtModes> |
Risposta
Esempio di risposta:
<?xml version="1.0" encoding="UTF-8"?>
<OJP version="2.0" xmlns:siri="http://www.siri.org.uk/siri" xmlns="http://www.vdv.de/ojp">
<OJPResponse>
<siri:ServiceDelivery>
<siri:ResponseTimestamp>2024-11-26T17:03:09.1541119+01:00</siri:ResponseTimestamp>
<siri:ProducerRef>MENTZ</siri:ProducerRef>
<OJPLocationInformationDelivery>
<siri:ResponseTimestamp>2024-11-26T17:03:09.1542196+01:00</siri:ResponseTimestamp>
<siri:RequestMessageRef>d5e1d0e3-ba3c-4f3e-b068-105f4d001777</siri:RequestMessageRef>
<siri:DefaultLanguage>de</siri:DefaultLanguage>
<CalcTime>2</CalcTime>
<PlaceResult>
<Place>
<StopPlace>
<StopPlaceRef>ch:1:sloid:7000</StopPlaceRef>
<StopPlaceName>
<Text xml:lang="de">Bern</Text>
</StopPlaceName>
<PrivateCode>
<System>EFA</System>
<Value>111055</Value>
</PrivateCode>
<TopographicPlaceRef>23006351:1</TopographicPlaceRef>
</StopPlace>
<Name>
<Text xml:lang="de">Bern (Bern)</Text>
</Name>
<GeoPosition>
<siri:Longitude>7.43913</siri:Longitude>
<siri:Latitude>46.94883</siri:Latitude>
</GeoPosition>
<Mode>
<PtMode>rail</PtMode>
</Mode>
</Place>
<Complete>true</Complete>
<Probability>1</Probability>
</PlaceResult>
<!-- und so weiter und so fort -->
<PlaceResult>
<Place>
<StopPlace>
<StopPlaceRef>ch:1:sloid:7062</StopPlaceRef>
<StopPlaceName>
<Text xml:lang="de">Muri b. Bern</Text>
</StopPlaceName>
<PrivateCode>
<System>EFA</System>
<Value>111070</Value>
</PrivateCode>
<TopographicPlaceRef>23006356:3</TopographicPlaceRef>
</StopPlace>
<Name>
<Text xml:lang="de">Muri b. Bern (Muri b. Bern)</Text>
</Name>
<GeoPosition>
<siri:Longitude>7.48641</siri:Longitude>
<siri:Latitude>46.93141</siri:Latitude>
</GeoPosition>
<Mode>
<PtMode>tram</PtMode>
<siri:TramSubmode>cityTram</siri:TramSubmode>
</Mode>
<Mode>
<PtMode>bus</PtMode>
<siri:BusSubmode>localBus</siri:BusSubmode>
</Mode>
</Place>
<Complete>true</Complete>
<Probability>0.851</Probability>
</PlaceResult>
</OJPLocationInformationDelivery>
</siri:ServiceDelivery>
</OJPResponse>
</OJP>
La risposta è in una OJPLocationInformationDeliveryElement imballato:
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
siri:ResponseTimestamp |
1:1 | Il timestamp della risposta |
<siri:ResponseTimestamp>2024-11-26T17:03:09.1542196+01:00</siri:ResponseTimestamp> |
siri:ProducerRef |
0:1 | Nome dell’operatore del sistema OJP |
<siri:ResponseTimestamp>MENTZ</siri:ResponseTimestamp> |
siri:RequesteMessageRef |
0:1 | Riferimento univoco arbitrario alla richiesta che ha portato a questa segnalazione |
<siri:RequestMessageRef>d5e1d0e3-ba3c-4f3e-b068-105f4d001777</siri:RequestMessageRef> |
siri:DefaultLanguage |
0:1 | Lingua standard per gli elementi di testo. |
<siri:DefaultLanguage>de</siri:DefaultLanguage> |
CalcTime |
0:1 | Il tempo di calcolo in millisecondi |
<CalcTime>2</CalcTime> |
Place |
1:1 | Contiene le risposte individuali Place | |
PlaceResult/Place |
1:1 | Contiene le singole risposte Place. Ecco un esempio di risposta con StopPlace. A seconda della richiesta, l’aspetto è leggermente diverso. Maggiori informazioni su altri parametri qui sotto.
Per ogni PlaceResult viene restituito un elemento Place. Il numero di PlaceResults è correlato ai parametri della richiesta «NumberOfResults», «NumberOfResultsAfter» e «NumberOfResultsBefore». Se la richiesta è stata effettuata senza questi parametri, il router può determinarne il numero. |
<PlaceResult> |
Complete |
1:1 | Indica se il posto attuale è completo o può ancora essere perfezionato. Durante il refinement, il «Ref» deve essere inserito di nuovo in una LocationInformationRequest per ricevere una risposta con tutti i dettagli. |
<Complete>true</Complete> |
Probability |
1:1 | La probabilità che la location corrispondente corrisponda a quella che stai cercando.
Il risultato è ordinato in ordine decrescente con la probabilità (il più rilevante prima). La selezione dei migliori candidati per l’elenco dei risultati viene determinata dopo che il testo dell’input coincide con l’intero dataset. La probabilità viene determinata in base al numero di trigrammi corrispondenti in cui i termini possono essere scomposti e il resto che non coincide. In caso di corrispondenza completa, ossia senza risultato, si ha un risultato definitivo e il candidato ottiene la probabilità massima 1. Se rimane un risultato residuo, viene detratto un punteggio. I risultati ottenuti possono essere successivamente influenzati da diversi criteri di valutazione, qualità e ordine di classificazione. Le corrispondenze possono essere modificate in base alla regione (codice comune), al tipo (fermata, indirizzo, luogo, POI ecc.), al mezzo di trasporto di servizio o a un valore di rilevanza. |
<Probability>0.927999973</Probability>
|
Mode |
0:* | Le modalità rilevanti per la location |
<Mode> |
Location (PlaceStructure)
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
StopPlace |
1:1 | Una fermata nel senso fisico |
<StopPlace> |
TopographicPlace |
1:1 |
Un luogo con un nome e un ID. |
<TopographicPlace> |
PointOfInterest |
1:1 | Un POI. Attenzione: Al momento non sono disponibili.
Questa funzione non è al momento supportata. |
<Place> |
Address |
1:1 | Un indirizzo |
<Address> |
Name |
1:1 | Il nome del luogo |
<Name> |
GeoPosition |
1:1 | L’esempio mostra ciò che viene utile. Può essere fornito anche con altri elementi, ad es. StopPlace. |
<GeoPosition> |
Luogo
| Elemento | Cardinalità | Descrizione | Esempio |
|---|---|---|---|
StopPlaceRef |
1:1 | Il riferimento alla fermata, uno SLOID. |
<StopPlaceRef>ch:1:sloid:8052</StopPlaceRef |
StopPlaceName |
1:1 | Nome della fermata |
<StopPlaceName> |
TopographicPlaceRef |
1:1 | Il riferimento al luogo. |
<TopographicPlaceRef>23006351:1</TopographicPlaceRef> |
TopographicPlaceName |
1:1 | Il nome del luogo |
<TopographicPlaceName> |
PointOfInterest |
1:1 | Il riferimento al luogo. |
<PointOfInterest> |
