2012-06-01 18 views
7

Devo poter accedere all'API di Google Maps da un'applicazione non web. Nelle FAQ di Google Maps vedo che questo è possibile. Tuttavia, non riesco a trovare alcun riferimento all'accesso all'API da un'applicazione basata su PC. Qualcuno può indicarmi la giusta direzione?google maps accesso non web

(voglio accedere all'API da un'applicazione Delphi, se questo aiuta.)

Grazie in anticipo.

+1

Prima di spendere più tempo sulla scrittura del codice, si dovrebbe leggere le condizioni di licenza con molta attenzione e forse considerare l'utilizzo di OpenStreetMap, invece. Sto solo dicendo ... – dummzeuch

+0

La mia linea di fondo è che ho bisogno di catturare un percorso su cui una persona guida, dall'inizio alla fine. Ho bisogno del nome della via, della città e dello stato/provincia. Presumibilmente, l'API di Google Maps ha un geodecoder che mi fornisce tali informazioni, conoscendo le coordinate GPS. – rickstep

+0

Sembra che nominatim da OpenStreetMap contenga i dati che sto cercando. Dato che sono un novizio in questo, ci sono esempi su come chiamare nomiatim da Delphi e interpretare i risultati xml? – rickstep

risposta

15

Qualche tempo fa ho scritto una serie di articoli sull'utilizzo dell'API di Google Maps v3 da Delphi, in pratica è necessario un componente TWebBrowser e caricare una pagina HTML con il codice JavaScript per gestire lo Google Maps JavaScript API v3. da qui utilizzando funzioni come IHTMLWindow2.execScript e MSHTML Interfaces è possibile interagire con il codice JavaScript e le risposte API di Google Maps di Delphi.

anche dare un'occhiata a questi progetti

5

Se si dispone di seri piani in questa direzione:
dimenticare le API di Google Maps, e utilizzare OpenLayers invece.

Credimi, ho avuto un'esperienza pratica con questo. Ho creato innumerevoli siti Web e applicazioni di cartografia interattiva e ho scritto un codice che racchiude la funzionalità di Google Maps nei componenti di Delphi. Li potete trovare su Google Code: http://code.google.com/p/delphimaps/

si possono anche trovare qualche applicazione di esempio che ho fatto con una prima versione di questi componenti qui: Use Googlemap from my Delphi application?

OpenLayers è molto più versatile, è completamente open source, e ha un'intera comunità dietro di esso. Può persino utilizzare Google Maps, ma puoi facilmente passare a OpenStreetMaps, Yahoo, Bing o al tuo sistema GIS.

Ci sono molti esempi online e non sei legato a regole stupide imposte da Google. Ad esempio, se si desidera utilizzare Google Maps tramite una connessione sicura (HTTPS), è necessario pagare. Non utilizzo mai più direttamente l'API di Google Maps e i miei siti Web GIS sono migliorati molto da quando ho iniziato a utilizzare OpenLayers.

Forse un giorno dovrei avvolgere OpenLayers in componenti Delphi, ma ora faccio la maggior parte delle cose in JavaScript e comunico solo con la mia app Delphi quando è davvero necessaria, quindi anche con le app Delphi che contengono una mappa, non molto GIS roba fatta a Delphi. Che risulta essere più facile da mantenere.

..

Inoltre, OpenLayers non richiede alcuna connessione ad internet. Può funzionare al 100% nel tuo browser offline.Google Maps richiede una connessione Internet, poiché scarica parti del suo codice in modo dinamico e desidera sempre scaricare le sue mappe da Google.

+1

"Ora faccio più roba in JavaScript ..." - non ne hai più e puoi stare con Pascal. Date un'occhiata a Smart Mobile Studio: http://op4js.optimalesystemer.no/about/ – avra

+0

La mia linea di fondo è che ho bisogno di catturare un percorso su cui una persona guida, dall'inizio alla fine. Ho bisogno del nome della via, della città e dello stato/provincia. Possono OpenLayers fare questo? – rickstep

+0

Non sono sicuro di cosa intendi con "acquisire un percorso", ma se hai bisogno di trasformare le coordinate in indirizzi, puoi utilizzare l'API di Google GeoCoder. DelphiMaps lo include per te e ci sono due demo su come usarlo. DelphiMaps avvolge anche la routeplanner di Google, e c'è anche una demo per questo. Questo spazio è troppo piccolo per dare ulteriori spiegazioni su di esso; fai una nuova domanda se hai bisogno di aiuto. –

5

Se stai cercando una soluzione completa per utilizzare l'API di Google Maps con Delphi, ti consiglio vivamente il Delphi Framework per Google Maps. Esso consente di utilizzare tutte le funzioni API senza una sola riga di codice HTML o JavaScript.

Ad esempio:

procedure TForm1.FormShow(Sender: TObject); 
begin 
    with Script(WebBrowser1) do 
    if not APILoaded 
     then LoadAPIAsync(InitMap); 
end; 

procedure TForm1.InitMap(Sender: TObject); 
var 
    MapOptions: TMapOptions; 
begin 
    with Sender as TScript do 
    begin 
    MapOptions:=New(Google.Maps.MapOptions); 
    with MapOptions do 
    begin 
     Zoom:=8; 
     Center:=New(Google.Maps.LatLng(-34.397,150.644)); 
     MapTypeID:=Google.Maps.MapTypeID.Roadmap; 
    end; 
    New(Google.Maps.Map(MapOptions)); 
    end; 
end; 

La route planner è anche facilmente disponibili. Ci sono alcuni demo.

Purtroppo, è ancora necessario scaricarlo attualmente da un German forum. Un sito web separato è in costruzione. Se ci sono problemi con la registrazione o il download, posso inviare un'e-mail con il framework.

saluti

+0

WOW - Darò un'occhiata a questo. Grazie!! – rickstep