23 Stimmen

Wie öffne ich Google Maps für Wegbeschreibungen mit Koordinaten auf dem iPhone?

Ich verwende UIMapView, um Standorte auf dem iPhone anzuzeigen. Ich möchte eine Wegbeschreibung vom aktuellen Standort zum Ort des Interesses zu tun, ich glaube nicht, dass es möglich ist, mit MapKit (aber wenn es ist bitte informieren) So werde ich entweder die Google Maps-Anwendung oder Safari öffnen, um es anzuzeigen.

Kann ich dies tun, indem ich die Koordinaten von (dem aktuellen Standort) bis zu den Koordinaten (dem Ort von Interesse) angebe? Ich habe diese Längen- und Breitengrade. Oder muss ich Straßenadressen verwenden?

Wenn ich Straßenadressen verwenden muss, kann ich sie aus dem Breiten- und Längengrad ableiten.

1voto

xor22h Punkte 19

Es ist möglich, die Route in MapKit anzuzeigen: Verwenden Sie einfach MKPolyline

Ich erhalte Polyline-String von googleMapsApi. Ich parse es auf dem Server mit php, und Rückkehr endgültige polilyne Zeichenfolge zu meiner app.

NSMutableArray *points = [myApp decodePolyline:[route objectForKey:@"polyline"]];

if([points count] == 0)
{
    return;
}

// while we create the route points, we will also be calculating the bounding box of our route
// so we can easily zoom in on it. 
MKMapPoint northEastPoint; 
MKMapPoint southWestPoint; 

// create a c array of points. 
MKMapPoint* pointArr = malloc(sizeof(CLLocationCoordinate2D) * [points count]);

for(int idx = 0; idx < points.count; idx++)
{
    // break the string down even further to latitude and longitude fields. 
    NSString* currentPointString = [points objectAtIndex:idx];
    NSArray* latLonArr = [currentPointString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]];

    CLLocationDegrees latitude  = [[latLonArr objectAtIndex:0] doubleValue];
    CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] doubleValue];

    // create our coordinate and add it to the correct spot in the array 
    CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude, longitude);

    MKMapPoint point = MKMapPointForCoordinate(coordinate);

    if (idx == 0) {
        northEastPoint = point;
        southWestPoint = point;
    }
    else 
    {
        if (point.x > northEastPoint.x) 
            northEastPoint.x = point.x;
        if(point.y > northEastPoint.y)
            northEastPoint.y = point.y;
        if (point.x < southWestPoint.x) 
            southWestPoint.x = point.x;
        if (point.y < southWestPoint.y) 
            southWestPoint.y = point.y;
    }
    pointArr[idx] = point;
    _currentLenght++;
}

// create the polyline based on the array of points. 
self.routeLine = [MKPolyline polylineWithPoints:pointArr count:points.count];

_routeRect = MKMapRectMake(southWestPoint.x, southWestPoint.y, 
                           northEastPoint.x - southWestPoint.x, 
                           northEastPoint.y - southWestPoint.y);

// clear the memory allocated earlier for the points
free(pointArr);

if (nil != self.routeLine) {
        [self.mapView addOverlay:self.routeLine];
}
[self.mapView setVisibleMapRect:_routeRect];

Und zeigen:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
MKOverlayView* overlayView = nil;

if(overlay == self.routeLine)
{
    self.routeLineView = [[[MKPolylineView alloc] initWithPolyline:self.routeLine] autorelease];
    self.routeLineView.fillColor = [UIColor blueColor];
    self.routeLineView.strokeColor = TICNavigatorColor;
    self.routeLineView.lineWidth = 7;
    self.routeLineView.lineJoin = kCGLineJoinRound;
    self.routeLineView.lineCap = kCGLineCapRound;

    overlayView = self.routeLineView;
}

return overlayView; 
}

Probieren Sie es aus.

-1voto

Hamza Punkte 1

Sie können sich die abgelegte Stecknadel per E-Mail zuschicken lassen, und wenn Sie den Link in der E-Mail öffnen, werden die Koordinaten angezeigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X