2012-01-24 22 views

回答

0
在我的應用程序

我在的UISearchBar打字的位置,之後我打電話這下面的方法

-(void)getLocation 
{ 
     NSString *urlString; 
     if(locationFinder.text!=nil) 
     { 
      urlString = [[NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [locationFinder.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]retain]; 
     } 


       NSLog(@"url:%@",urlString); 

      NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]]; 
      NSArray *listItems = [locationString componentsSeparatedByString:@","]; 


      if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) 
      { 
       latitude = [[listItems objectAtIndex:2] doubleValue]; 
       longitude = [[listItems objectAtIndex:3] doubleValue]; 
      } 

      NSLog(@"latitude: %f longitude:%f",latitude,longitude); 

      urlString=[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%d&types=%@&sensor=true&key=AIzaSyBbUuE-DprCN-CME1SgcNxyeuDdRrBgkyk",latitude,longitude,mRadius,mTypes]; 

     NSLog(@"url: %@",urlString); 
     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:180.0]; 
     id urlRequest = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
     if(urlRequest) 
     { 
       responseData=[[NSMutableData data]retain]; 
       NSLog(@"hiiii i m data"); 

      } 
    } 

,並實施一些其他的委託方法,並通過JSON解析數據

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    [responseData setLength:0]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    //NSLog(@"DATA:%@",data); 
    [responseData appendData:data]; 
    //NSLog(@"%@",responseData); 
    //[responseData release]; 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
    NSLog(@"connection failed:%@",[error description]); 
    //done.enabled = YES; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    [connection release]; 

    //NSLog(@"response data:%@",responseData); 
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
    //NSLog(@"response:%@",responseString); 
    //[responseData release]; 
    NSDictionary *locationData = [responseString JSONValue]; 
    NSLog(@"ALLKEYS:%@",[locationData allKeys]); 
      self.responseDataDict=[locationData objectForKey:@"results"]; 
      NSLog(@"locationdata allkeys:%@",[locationData allKeys]); 
     NSLog(@"name:%d",[responseDataDict count]); 



} 
+0

嘿嗨,謝謝,但我的問題是我如何添加新的地方到谷歌地方API –

+0

你想通過谷歌API的mapview多個地方? –

+0

沒有yaar我想添加我自己的地方。 –

0

使用下面的示例添加一個地方。

POST https://maps.googleapis.com/maps/api/place/add/json?sensor=true_or_false&key=api_key 
    HTTP/1.1 
    Host: maps.googleapis.com 

    { 
     "location": { 
     "lat": -33.8669710, 
     "lng": 151.1958750 
     }, 
     "accuracy": 50, 
     "name": "Google Shoes!", 
     "types": ["shoe_store"], 
     "language": "en-AU" 
    } 
+0

嗨raj plz讀我的問題我能夠搜索的地方,但現在我想添加的地方。如果你知道的東西比請與我分享。 –

+0

嗨suraj,看到這個新的答案。它會幫助你。 –

0
NSString *str1 = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><PlaceAddRequest><location><lat>24.003372</lat><lng>75.770232</lng></location><accuracy>50</accuracy><name>test pet house</name><type>pet_store</type><language>en-US</language></PlaceAddRequest>"]; 
    NSLog(@"str1=====%@",str1); 

NSString *str2 = [str1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSData *requestdata = [NSData dataWithBytes:[str2 UTF8String] length:[str2 length]]; 
NSString *postLength = [NSString stringWithFormat:@"%d", [requestdata length]]; 


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/add/xml?sensor=false&key=your own api key"]]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 

[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:[NSData dataWithBytes:[str1 UTF8String] length:[str1 length]]]; 

//NSURLConnection *placesConn =[[NSURLConnection alloc] initWithRequest:request delegate:self]; 
NSData *returndata = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *returnstr = [[[NSString alloc] initWithData:returndata encoding:NSUTF8StringEncoding] autorelease]; 
NSLog(@"returnstr: %@",returnstr); 

使用上面的代碼你一定w'll添加新的地方,谷歌API ....只是改變你的緯度,經度,名稱&你的API在上面的代碼中的鍵值..

+0

嗨,我用這個代碼,並代替了我自己的所有值,並在響應中收到確定。問題是這個地方還沒有顯示在我的地圖上。我使用相同的API密鑰和附近的搜索。 – ferris