2009-09-29 10 views
12

fand ich, dass die Google Maps API unterstützt Anfahrt durch:MKMapView Anfahrt/Wegbeschreibung

var map; 
var directionsPanel; 
var directions; 

function initialize() { 
    map = new GMap2(document.getElementById("map_canvas")); 
    directionsPanel = document.getElementById("my_textual_div"); 
    map.setCenter(new GLatLng(49.496675,-102.65625), 3); 
    directions = new GDirections(map, directionsPanel); 
    directions.load("from: 500 Memorial Drive, Cambridge, MA to: 4 Yawkey Way, Boston, MA 02215 (Fenway Park)"); 
} 

Wie kann dies in Objective-C übersetzt werden, so kann es durch das iPhone abgerufen werden? Ich weiß, wie man eine Linie auf MKMapView zeichnet. Ich brauche nur die Geolokationen für die Route.

Oder vielleicht gibt es eine andere Möglichkeit, die Route zwischen zwei Geolocation-Punkten zu bekommen.

Bitte lassen Sie mich wissen,

Vielen Dank im Voraus.

Antwort

9

Es ist eine nicht dokumentierte Google Maps Directions API erwähnt und ausgesetzt here

Auch sollten Sie einen Blick auf die Probe IPhone Anwendung nehmen die Routen/Richtungen auf MKMapView zieht die oben here genannten API

Aber Warnung Sie über die Lizenzprobleme bezüglich der undokumentierten Google Maps Directions API.

Hoffe, das hilft.

+3

** - HINWEIS - ** Beispielprojekt finden Sie unter github [https://github.com/kadirpekel/MapWithRoutes](https://github.com/kadirpekel/MapWithRoutes) – coffeemate

+0

die Links bei beiden "hier" funktionieren nicht, wenn ich beim Schreiben dieses Kommentars vor einer Minute angeklickt habe. Bitte überprüfe, ob sie funktionieren oder nicht und sie aktualisieren .. weil ich in der Tat von ihnen bin ... – Nayan

+0

mit Google Maps APi funktioniert nur mit Google Maps, das scheint nicht mehr eine vertrauenswürdige Methode als iOS 5 wird dies nicht zulassen, brauchen ein besseres Methoden. Bitte post, wenn jemand findet. –

8

Ursprünglich wollte ich sagen (und ich bin mir sicher, dass andere davon berichten werden), dass die Nutzungsbedingungen von Google Maps anzeigen, dass Sie keine Routen verwenden können, wenn Sie MapKit verwenden möchten. Aber dann habe ich überprüft http://code.google.com/apis/maps/terms/iPhone.html und konnte nicht wirklich eine explizite Einschränkung finden. Wenn ich es richtig verstehe, sagt es tatsächlich, dass man Richtungen nicht verwenden kann, solange es an eine GPS-gesteuerte Echtzeit-Turn-by-Turn-Funktionalität gebunden ist. Sie sollten Ihr eigenes Urteil darüber treffen, ob es in Ordnung ist oder nicht und ob es Ihre Chance auf Akzeptanz im AppStore beeinflusst.

Soweit Sie die tatsächlichen Daten in Objective-C erhalten, ist Ihr Bestes, um die Google Ajax-Suche Dokumentation [http://code.google.com/apis/ajaxsearch/documentation/] vor allem den Abschnitt unter Flash und andere Non-Javascript-Umgebungen. Es wird eine RESTful-API erläutert, mit der Sie HTTP-GET-Anforderungen an Google senden und JSON-Daten abrufen können. Nur so habe ich programmatische Daten von Google erhalten, die nicht an Javascript gebunden sind.

Sobald Sie die richtige URL zum Aufrufen gefunden haben, können Sie die gesamte Nachricht in einen ASIHTTPRequest-Aufruf umbrechen und das Ergebnis an eine JSON parser senden. Beachten Sie, dass die RESTful-API nur wenige Ergebnisse (zwischen 4 und 8) gleichzeitig zurückgibt und Sie so lange weitermachen müssen, bis Sie alle Daten erhalten haben. Es scheint auch eine Beschränkung von 64 Elementen auf die Anzahl der von der API zurückgegebenen Ergebnisse zu geben, so dass einige komplexe Kantenfälle betroffen sein können.

+0

Ich denke, es ist seltsam, dass sie fast alles außer Richtungen unterstützen. Naja, ich schätze, ich bin besser darin, eine Weiterleitung zur Google Maps App zu verwenden. – Mark