web-dev-qa-db-ja.com

CLLocationCoordinate2DからCLLocation

私のviewDidLoadに次のループがあります:

    for(int i=1; i<[eventsArray count]; i++) {
  NSArray *componentsArray = [[eventsArray objectAtIndex:i] componentsSeparatedByString:@","];
  if([componentsArray count] >=6) {
   Koordinate *coord = [[Koordinate alloc] init];
   coord.latitude = [[componentsArray objectAtIndex:0] floatValue];
   coord.longtitude = [[componentsArray objectAtIndex:1] floatValue];
   coord.magnitude = [[componentsArray objectAtIndex:2] floatValue];
   coord.depth = [[componentsArray objectAtIndex:3] floatValue];
   coord.title = [componentsArray objectAtIndex:4];
   coord.strasse = [componentsArray objectAtIndex:5];
   coord.herkunft = [componentsArray objectAtIndex:6];
   coord.telefon = [componentsArray objectAtIndex:7];
   coord.internet = [componentsArray objectAtIndex:8];
   [eventPoints addObject:coord];


  }

coordはCLLocationCoordinate2Dです

しかし、2つの座標間の距離を取得するためにこれが必要なため、次の方法でどのように座標を使用できますか?

    - (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation{

}

私が立ち往生しているのを助けてください!

事前に助けてくれてありがとう

25
Marco

CLLocationには、-(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitudeという名前のinitメソッドがあります。次に、- (CLLocationDistance)getDistanceFrom:(const CLLocation *)locationを使用して、2つのCLLocationオブジェクト間の距離を取得します。

40
AlexVogel

シンプルな

CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lon];
11
Can Ürek

Swift群衆の場合、

「fetchCafesArroundLocation」というメソッドがあり、地図が移動した後に更新されます。これは、CLLocationCoordiate2dからLatとLonをCLLocationに取得して、CLLocation変数を処理メソッドに渡す方法です。

func mapView(mapView: MKMapView!, regionDidChangeAnimated animated: Bool){

    var centre = mapView.centerCoordinate as CLLocationCoordinate2D

    var getLat: CLLocationDegrees = centre.latitude
    var getLon: CLLocationDegrees = centre.longitude


    var getMovedMapCenter: CLLocation =  CLLocation(latitude: getLat, longitude: getLon)

    self.lastLocation = getMovedMapCenter
    self.fetchCafesAroundLocation(getMovedMapCenter)

}

「インスタンスをCLLocationとして使用するにはどうすればよいですか?」

それは一つではないのでできません。 1つ作成 する必要があります。

割り当てたものをリリースすることを忘れないでください。 メモリ管理ルール を参照してください。

2
Peter Hosey

CoordがCCLocationCoordinate2Dの場合は、

**- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation**

以下のようにlatitudeの座標プロパティのlongitudeプロパティとCLLocationプロパティの両方を取得してデリゲートします。

coord.latitude = newLocation.coordinate.latitude;
coord.longitude = newLocation.coordinate.longitude;
0
GeneCode