2010-05-26 3 views
3

내 앱에 작은 정적 Google지도를 표시하려고합니다. UIImageView를 사용하여이 작업을 수행 할 수 있는지 궁금합니다. 그것은 나를 위해 일하지 않는 것 같지만 어쩌면 내가 뭔가 잘못하고 있습니다. 그때 이미지 중 하나를 사용하여 URL을 대체하는 경우가로드 때문에 내있는 UIImageView는 설정이 제대로입니다 내가 아는정적 Google지도를 UIImageView에로드 하시겠습니까?

NSURL *mapurl = [[NSURL alloc] initWithString:@"http://maps.google.com/maps/api/staticmap?[...]"]; 
NSData *mapdata = [[NSData alloc] initWithContentsOfURL:mapurl]; 
UIImage *uimap = [[UIImage alloc] initWithData:mapdata]; 
self.map.image = uimap; // map is my UIImageView  
[mapurl release]; 
[mapdata release]; 
[uimap release]; 

:

내가 (이 읽기 쉽게 그래서 나는 URL을 제거) 한 것입니다 벌금. 또한 브라우저에 바로로드하면 정상적으로 표시되기 때문에 Google지도 URL이 정확하다는 것도 알고 있습니다.

나는 이것이 가능하지 않을 수도 있다고 생각하기 시작했습니다. 누구든지 아이디어 나 대안이 있다면 공유하십시오.

감사합니다.

답변

4

글쎄,이 문제에 대한 해결책을 찾았으므로 다른 사람이 같은 문제에 부딪 힐 경우 게시 할 것입니다.

먼저 NSURLConnection을 사용하여 이미지를로드하는 방식을 변경했습니다. 나는이 특별한 변화가 변화를 가져 왔다고 생각하지 않지만 이것이 내가 문제를 발견하게 한 원인이다. URL을로드하려고 할 때 "잘못된 URL"오류가 발생합니다. 그래서 나는 그것에 대한 검색을했는데 이스케이프해야하는 Google 정적지도 URL에 잘못된 문자가있는 것으로 나타났습니다.

그래서 기본적으로 그냥 URL에 전화를하고 당신이 가서 잘되어야합니다 :

// The URL you want to load (snipped for readability) 
NSString *mapurl = @"http://maps.google.com/maps/api/staticmap?[...]"; 

// Escape the string 
mapurl = [mapurl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

를 내가 내 원래의 게시물에있는 코드를이 솔루션을 시험하지 않았다 그러나 나는 그것을 테스트 않았다 내 새로운 NSURLConnection 구현 및 완벽하게 작동합니다. 문자열을 이스케이프 처리해야하기 때문에 위의 코드에서도 잘 작동한다고 가정합니다.

관련 문제