2012-03-28 3 views
1

나는 국가 이름 배열을 가지고 있으며 아이콘으로 MKMapView에 배치하려고합니다. 그래서 예를 들어 프랑스가 countryName 배열에 있다면 나는 프랑스 중심에 핀을 배치하고 싶습니다.MKMapView 이름을 사용하여 국가에 핀 배치

위도/경도를 각 국가별로 저장하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

나는이 작품을 오프라인으로 만들고 세계의 가장 기본적이고 완전히 축소 된 이미지로만지도를 요구하고자합니다.

나는 MKMapView가 GLGeocoder와 인터넷 연결을 사용하지 않고도 위와 같은 기본적인 지리 정보를 가지고 있다고 믿는다.

+0

내장 된 MKMapView가 오프라인으로 작동하지 않습니다. 빠른 인터넷 연결이 없을 때 기본 세계지도가있는지도 오버레이를 추가하는 것이 좋습니다. –

+0

@NielsCastle iPad를 비행기 모드로 놓은 다음 MKMapView가 추가 된 viewcontroller를로드하면 기본 세계지도가 표시되지만 확대/축소를 사용하지 않도록 설정하면 괜찮습니다. . 내가보기에는 캐시 된 데이터가 아닌 한? –

+0

최상위 레벨지도가 항상 사용 가능하다는 것을 보장하는 특별한 경우가 있는지 모르겠지만 문서의 모든 언급을 기억하지 못합니다. 나는 그것에 의지하기를 주저 할 것이다. –

답변

3

당신이 위도와 경도 1을 얻을 후에 만 ​​국가 이름을 사용하는 경우 우리는 오랫동안 그 나라에 대한 자성 위도 센터를 얻을 수 :-(주소 가져 오기 위도와 경도에 대해이 기능)

-(CLLocationCoordinate2D) getLocationFromAddressString:(NSString*) countryStr { 
    NSString *urlAddressStr = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
                           [countryStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    NSString *locationStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlAddressStr]]; 
    NSArray *items = [locationStr componentsSeparatedByString:@","]; 

    double lat = 0.0; 
    double long = 0.0; 

    if([items count] >= 4 && [[items objectAtIndex:0] isEqualToString:@"200"]) 
    { 
        lat = [[items objectAtIndex:2] doubleValue]; 
        long = [[items objectAtIndex:3] doubleValue]; 
    } 
    CLLocationCoordinate2D location; 
    location.latitude = lat; 
    location.longitude = long; 

    return location; 
} 

시도) 사용)

3 영역

에 mapKit 워크이 기능

3) 세트의 위도 및 경도를 사용하는 추가

,886,
+0

답장을 보내 주셔서 감사합니다. 그러나이 방법은 인터넷 연결을 사용하여 조회를 수행합니다. CLLocationCoordinate2D 내에서 위도와 경도를 설정하는 데 도움이되었습니다 –

+0

고맙습니다. – Deepesh

1

데이터 파일 (sqlite)을 응용 프로그램에 저장하고 핀을 맵에 배치 할 때 데이터베이스를 쿼리하지 않는 한이 방법은 작동하지 않습니다. 그러나 오프라인 모드에서지도 데이터 가용성을 보장합니다.

는 기본적으로 사용 가능한 형태의 파일 당신이 sqlite가 파일을 가져온 후에는 .loadshp 명령이 http://www.gaia-gis.it/gaia-sins/spatialite-tutorial-2.3.1.html

을 설명하여 SQLite는 파일로 http://thematicmapping.org/downloads/world_borders.php

가져 오기를 사용할 수있다, 당신은 뭔가를 조회 할 수 있습니다 같은

select lon,lat from world_borders where name like 'Zambia'; 

lon = longitude, 
lat = latitude, 
world_borders = table name 
and 'Zambia' = country name. 
+0

문제를 해결하려면 사용 가능한 sqlite 파일에 파일을 가져 왔습니다. https://github.com/nhisyam/World-Borders – nhisyam

+0

많은 감사, 이것은 실제로 내 질문에 답하지 않고 큰 도움이됩니다. 이것은 내가 필요로하는 완전한 나라 목록과 관련 lat/longs를 나에게 줄 것이다. :) –

+0

도움이 되니 기쁩니다. =) – nhisyam