2014-01-03 3 views
-3

В моем приложении, я сделал JSON синтаксический и я получил координаты в виде словаря, я хочу, чтобы использовать координаты angd сюжет его на карте,
я с помощью этогоКак построить маркеры на картах google из dictionay в ios?

SBJsonParser *jsonParser = [SBJsonParser new];  
NSArray *jsonData = (NSArray *) [jsonParser objectWithString:outputData error:nil]; 
for(int i=0;i<[jsonData count];i++) 
{ 
    NSDictionary *dict=(NSDictionary *)[jsonData objectAtIndex:i]; 
    Nslog(@"%@",dict); 
    double la=[[dict objectForKey:@"latitude"] doubleValue]; 
    double lo=[[dict objectForKey:@"longitude"] doubleValue]; 

    CLLocation * loca=[[CLLocation alloc]initWithLatitude:la longitude:lo]; 
    CLLocationCoordinate2D coordi=loca.coordinate; 

    marker=[GMSMarker markerWithPosition:coordi]; 
    marker.snippet = @"Hello World"; 
    marker.animated = YES; 
    marker.map = mapView; 
} 

это печатается

[{"driver_id":"[email protected]","username":"sunil","latitude":"0.000000000000000", 
"longitude":"0.000000000000000"}, 
{"driver_id":"[email protected]","username":"mari","latitude":"13.040720500000000", 
"longitude":"80.243139600000000"},  {"driver_id":"[email protected]","username":"balaji","latitude":"0.000000000000000", 
"longitude":"0.000000000000000"} 

Затем в моем журнале, он становится напечатано как

2014-01-04 10:55:48.121 MyTaxi[608:12e03] latitude : 0.000000 
2014-01-04 10:55:48.121 MyTaxi[608:12e03] longitude : 0.000000 
2014-01-04 10:55:48.122 MyTaxi[608:12e03] latitude : 13.040721 
2014-01-04 10:55:48.122 MyTaxi[608:12e03] longitude : 80.243140 
2014-01-04 10:55:48.122 MyTaxi[608:12e03] latitude : 0.000000 
2014-01-04 10:55:48.123 MyTaxi[608:12e03] longitude : 0.000000 

Но это оленья кожа ш Орки правильно

Does any body have an idea how to plot these points to the google maps 
+0

есть кто-нибудь, чтобы помочь – chandru

+0

об ошибке в наступающем - [__ NSCFString objectAtIn dex:]: непризнанный селектор отправлен в экземпляр – chandru

+0

значения долготы и широты загружаются в la и lo, ошибка будет от CLLOcation, пожалуйста, помогите мне – chandru

ответ

2

Я думаю, Вы должны Alloc Маркер в течение цикла, сейчас вы создаете только один маркер,

for(int i=0;i<[jsonData count];i++) 
{ 
    NSDictionary *dict=(NSDictionary *)[jsonData objectAtIndex:i]; 
double la=[dict valueForKey:@"latitude" doubleValue]; 
double lo=[dict valueForKey:@"longitude" doubleValue]; 

CLLocation * loca=[[CLLocation alloc]initWithLatitude:la longitude:lo]; 
CLLocationCoordinate2D coordi=loca.coordinate; 

GMSMarker *marker= [[GMSMarker alloc] init]; 
marker=[GMSMarker markerWithPosition:coordi]; 
    marker.snippet = @"Hello World"; 
    marker.animated = YES; 
    marker.map = mapView; 
..... 

} 
+0

не работает, мог угадать какую-то вещь wlse – chandru

+1

что значит не работать ??? какая-то ошибка или что, дайте правильное объяснение, чтобы кто-то мог вам помочь. –

+0

маркер не указан в указанном месте, см. Мой комментарий – chandru

4

попробовать это это может быть полезно просто создать цикл для вашего счета, увеличить его ...

NSDictionary *dict=(NSDictionary *)[jsonData objectAtIndex:i]; 
    double la=[[dict valueForKey:@"latitude"] doubleValue]; 
    double lo=[[dict valueForKey:@"longitude"] doubleValue]; 

    NSMutableArray * latArray=[[NSMutableArray alloc]init]; 
    NSMutableArray * longArray=[[NSMutableArray alloc]init]; 

    [latArray addObject:[NSNumber numberWithDouble:la]]; 
    [longArray addObject:[NSNumber numberWithDouble:lo]]; 

    CLLocation * loca=[[CLLocation alloc]initWithLatitude:[[latArray objectAtIndex:i]doubleValue] longitude:[[longArray objectAtIndex:i]doubleValue]]; 
    CLLocationCoordinate2D coordi=loca.coordinate; 

    GMSMarker *marker= [[GMSMarker alloc] init]; 
    marker=[GMSMarker markerWithPosition:coordi]; 
    marker.position = CLLocationCoordinate2DMake([[latArray objectAtIndex:i]doubleValue], [[longArray objectAtIndex:i]doubleValue]); 
    marker.snippet = @"Hello World"; 
    marker.animated = YES; 
    marker.map = mapView; 
+0

показывает ошибку: Попутный„идентификатора“для параметра несовместимого типа„CLLocationDegrees“(так называемый„двойные“) – chandru

+0

массива не может быть отправлен CLLocation, – chandru

+0

он выходит из строя здесь CLLocation * loca = [[CLLocation alloc] initWithLatitude: [latArray objectAtIndex: i] долгота: [longArray objectAtIndex: i]]; – chandru

Смежные вопросы