0

重複の可能性:
MKMapView iOS6 上の複数の MKPolyline

緯度と経度を含む 2 つの csv ファイルがあります。iOS 6 マップに 2 つのポリラインまたはルートを描画したいと考えています。これどうやってするの??

次のコードを試して、単一のポリラインを描画しました。

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"route" ofType:@"csv"];
NSString* fileContents = [NSString stringWithContentsOfFile:filePath];
NSArray* pointStrings = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

NSMutableArray* points = [[NSMutableArray alloc] initWithCapacity:pointStrings.count];

for(int idx = 0; idx < pointStrings.count; idx++)
{
    // break the string down even further to latitude and longitude fields.
    NSString* currentPointString = [pointStrings objectAtIndex:idx];
    NSArray* latLonArr = [currentPointString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]];

    CLLocationDegrees latitude  = [[latLonArr objectAtIndex:0] doubleValue];
    CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] doubleValue];

    CLLocation* currentLocation = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
    [points addObject:currentLocation];
}

// create our route layer view, and initialize it with the map on which it will be rendered.
_routeView = [[CSMapRouteLayerView alloc] initWithRoute:points mapView:mapView];

しかし、このコードの問題は、マップをスクロールできず、ダブルクリックしてズームインしても機能しないことです (基本的にマップがフリーズします)。Xcode 4.3(Googleマップを使用)では正常に機能していましたが。

4

1 に答える 1

0

CSMapRouteLayerView は使用せず、mapview 自体を使用してください。カスタム パスを mapView 上に簡単に描画できます。

MKMapKit リファレンスを参照してください: http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MapKit_Framework_Reference/_index.html

次のクラスでオーバーレイを作成します:
MKOverlayPathView or
MKPolylineViewおよびMKPolylinefor lines。
(必要MKPolygonViewに応じて、ポリゴンの MKPolygon も使用できます。)

これらのクラスを mapView で使用するには、次のメソッド / デリゲートを使用します。

MKMapView : マップへのオーバーレイの追加
– addOverlay:

MKMapViewDelegate: オーバーレイ ビューの管理
– mapView:viewForOverlay:
– mapView:didAddOverlayViews:

于 2012-11-22T10:23:09.267 に答える