2016-05-18 17 views
0

Ich habe eine Karte, um Richtungen anzuzeigen. Ich kann eine Richtung antippen, um eine Anmerkung mit den Anweisungen anzuzeigen, aber was ich versuche, ist, den Richtungskoordinaten eine Markierung hinzuzufügen. Hier ist der Code, den ich zur Zeit bin mit:Hinzufügen eines Marker-Bildes zu Google Maps auf IOS Objective-C App

-(void) getDirectionsFromStart: (CLLocation*) start toEnd: (CLLocation*) end 
{ 

NSString *mapDir = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/directions/json?origin=%f,%f&destination=%f,%f&sensor=false", start.coordinate.latitude, start.coordinate.longitude, end.coordinate.latitude, end.coordinate.longitude]; 
if ([self.directionsArray count] == 0) { 

//parse the string response and then draw the points on a map 
    NSError *error; 
    NSString *response = [NSString stringWithContentsOfURL:[NSURL URLWithString:mapDir] encoding:NSUTF8StringEncoding error:&error]; 
    if (response == nil) { 
     NSLog(@"Google Maps error: %@", [error localizedDescription]); 
     NSLog(@"Google Maps recovery: %@", [error localizedRecoverySuggestion]); 
     //[self getDirectionsFromStart:nil toEnd:nil]; 
    } 
    self.directionsArray = [gMapsJsonDirectionsParser parseJsonToMapDirections:response]; 
} 
for (gMapsJourneyLeg *leg in self.directionsArray) { 
    @autoreleasepool { 

    self.directionsHeader.text = [NSString stringWithFormat:@"To %@ Taking: %@", leg.end_address, leg.duration.text]; 
    for (gMapsStep *step in leg.steps) { 
     MKPolyline *polyLine = [gMapsJsonDirectionsParser polylineWithEncodedString:step.polyLine]; 
     MKPolylineView *line = [[MKPolylineView alloc] initWithPolyline: polyLine]; 

     line.fillColor = [UIColor blueColor]; 
     line.strokeColor = [UIColor blueColor]; 
     line.lineWidth = 5; 
     [self.mapView addOverlay:polyLine]; 
     //[self.mapView setVisibleMapRect:polyLine.boundingMapRect]; 
     //map point code 
     MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; 
     point.coordinate = step.end_location.coordinate; 
     point.title = step.htmlInstructions; 

     [[self.mapView viewForAnnotation:point] setTag:1]; 
     UIImage *image = [UIImage imageNamed:@"marker_red.png"]; 
     [[self.mapView viewForAnnotation:point] setImage:image]; 

     [self.mapView addAnnotation:point]; 
    } 
    } 
} 

[self.tableView reloadData]; 
} 

Um klar zu sein, die Anmerkungen und Linienzug sind beide gut, es ist nur der Marker wird nie angezeigt.

Antwort

2

Base auf dem Code in der Google Docs for Markers:

Hier ist der Beispielcode für Markierungen mit benutzerdefinierten Bild hinzufügen.

CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); 
GMSMarker *london = [GMSMarker markerWithPosition:position]; 
london.title = @"London"; 
london.icon = [UIImage imageNamed:@"house"]; 
london.map = mapView_; 

können Sie die GMSMarker *london = [GMSMarker markerWithPosition:position]; haben nicht sein, warum Ihre Markierung ist nicht sichtbar ist. Bitte überprüfen Sie die Markierung ohne ein benutzerdefiniertes Bild, wenn es angezeigt wird, wenn nicht versuchen, die markerPosition Eigenschaft hinzuzufügen.