2012-06-01 6 views
7

Ich muss auf das Google Maps API von einer nicht webbasierten Anwendung aus zugreifen können. Ich sehe in den FAQs von Google Maps, dass dies möglich ist. Ich kann jedoch keinen Verweis auf den Zugriff auf die API von einer PC-basierten Anwendung finden. Kann mir jemand in die richtige Richtung zeigen?google maps non-web access

(Ich will die API von einer Delphi-Anwendung zugreifen zu können, ob das hilft.)

Vielen Dank im Voraus.

+1

Bevor Sie mehr Zeit für das Schreiben von Code ausgeben, sollten Sie die Lizenzbedingungen sehr sorgfältig lesen und vielleicht sollten Sie stattdessen mit OpenStreetMap. Nur zu sagen ... – dummzeuch

+0

Mein Fazit ist, dass ich eine Route erfassen muss, auf der eine Person fährt, von Anfang bis Ende. Ich brauche den Straßennamen, die Stadt und den Staat/die Provinz. Angeblich hat das Google Maps API einen Geodecoder, der mir diese Informationen liefert, wenn ich die GPS-Koordinaten kenne. – rickstep

+0

Es scheint, dass nominatim von OpenStreetMap die Daten enthält, nach denen ich suche. Da ich ein Neuling bin, gibt es Beispiele dafür, wie man nomiatim innerhalb von Delphi aufruft und die xml-Ergebnisse interpretiert? – rickstep

Antwort

15

Vor einiger Zeit schrieb ich eine Reihe von Artikeln über die Verwendung der Google Maps API v3 aus Delphi, im Grunde benötigen Sie eine TWebBrowser Komponente und laden eine HTML-Seite mit dem JavaScript-Code, um die Google Maps JavaScript API v3 zu behandeln. Von hier aus können Sie mit Funktionen wie IHTMLWindow2.execScript und MSHTML Interfaces mit dem JavaScript-Code und den Google Maps API-Antworten von Delphi interagieren.

Werfen Sie auch einen Blick auf diese Projekte

5

Wenn Sie in diese Richtung ernsthafte Pläne haben:
über die Google Maps API Forget und OpenLayers stattdessen verwenden.

Glauben Sie mir, ich habe praktische Erfahrung damit. Ich habe unzählige interaktive Mapping-Websites und -Anwendungen erstellt und Code geschrieben, der die Google Maps-Funktionalität in Delphi-Komponenten einfügt. Sie können sie auf Google Code finden: http://code.google.com/p/delphimaps/

Sie auch einige Beispiel-Anwendung finden kann, die ich mit einer frühen Version dieser Komponenten hier gemacht haben: Use Googlemap from my Delphi application?

Openlayers ist wesentlich vielseitiger, es ist vollständig Open Source, und es hat eine ganze Gemeinschaft dahinter. Es kann sogar Google Maps verwenden, aber Sie können leicht zu OpenStreetMaps, Yahoo, Bing oder Ihrem eigenen GIS-System wechseln.

Es gibt viele Beispiele online, und Sie sind nicht an dumme Regeln gebunden, die von Google auferlegt werden. Wenn Sie beispielsweise Google Maps über eine sichere Verbindung (HTTPS) verwenden möchten, müssen Sie zahlen. Ich nutze das Google Maps-API nie mehr direkt und meine GIS-Websites wurden seit der Verwendung von OpenLayers wesentlich besser.

Vielleicht sollte ich eines Tages OpenLayers in Delphi-Komponenten verpacken, aber ich mache jetzt die meisten Sachen in JavaScript und kommuniziere nur mit meiner Delphi-App, wenn es wirklich benötigt wird. Selbst mit Delphi-Anwendungen, die eine Karte enthalten, nicht viel GIS Zeug ist in Delphi getan. Das erweist sich als einfacher zu pflegen.

..

Auch Openlayers benötigt keine Internetverbindung. Es kann zu 100% in Ihrem Offline-Browser ausgeführt werden.Google Maps erfordert eine Internetverbindung, da Teile des Codes dynamisch heruntergeladen werden und die Karten immer von Google heruntergeladen werden sollen.

+1

"Ich mache jetzt die meisten Sachen in JavaScript ..." - Sie müssen nicht mehr und Sie können bei Pascal bleiben. Werfen Sie einen Blick auf Smart Mobile Studio: http://op4js.optimalesystemer.no/about/ – avra

+0

Mein Fazit ist, dass ich eine Route erfassen muss, auf der eine Person fährt, von Anfang bis Ende. Ich brauche den Straßennamen, die Stadt und den Staat/die Provinz. Können OpenLayers das tun? – rickstep

+0

Ich bin mir nicht sicher, was Sie mit "Route erfassen" meinen, aber wenn Sie Koordinaten in Adressen umwandeln müssen, können Sie die Google GeoCoder API verwenden. DelphiMaps umschließt das für Sie und es gibt zwei Demos zur Verwendung. DelphiMaps umschließt auch den Routeplanner von Google, und dafür gibt es auch eine Demo. Dieser Raum ist zu klein, um weitere Erklärungen zu geben; Stellen Sie eine neue Frage, wenn Sie Hilfe benötigen. –

5

Wenn Sie eine vollständige Lösung für die Verwendung der Google Maps-API mit Delphi suchen, empfehle ich das Delphi Framework für Google Maps. Es ermöglicht die Verwendung alle API-Funktionen ohne eine einzige Zeile HTML oder JavaScript.

Zum Beispiel:

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; 

Der Routenplaner ist auch leicht zugänglich sind. Es gibt einige Demos.

Leider müssen Sie es immer noch von einer German forum herunterladen. Eine separate Website befindet sich im Aufbau. Wenn es Probleme mit der Registrierung oder dem Download gibt, kann ich eine E-Mail mit dem Framework senden.

Grüße

+0

WOW - ich werde mir das ansehen. Vielen Dank!! – rickstep