В чем разница между MKCoordinateSpan и CLLocationCoordinate2D - PullRequest
7 голосов
/ 19 марта 2012

Я просматривал пример MapKit и CoreLocation фреймворка.Я нашел эти две структуры (MKCoordinateSpan и CLLocationCoordinate2D), которые похожи в объявлении.Чем они отличаются по функциональности, может кто-нибудь, пожалуйста, приведите пример (используя оба), чтобы прояснить их значения.

Спасибо!

Ответы [ 2 ]

23 голосов
/ 19 марта 2012

MKCoordinateSpan определяет диапазон , т. Е. Дельту, в направлениях широты и долготы для отображения на карте.Наряду с точкой вы можете определить регион для отображения на карте.

CLLocationCoordinate2D определяет одну точку в системе координат широты и долготы.

Например:

|<---- deltaLat  ---->|
|---------------------|---
|                     | |
|                     | |
|                     | |
|                     | |
|          +          |deltaLon
|      (lat,lon)      | |
|                     | |
|                     | |
|                     | |
|---------------------|---

Здесь вы можете представить себе центральную точку (lat,lon), относительно которой у вас есть deltaLat и deltaLon.

Так что (lat,lon) будет CLLocationCoordinate2D, а deltaLat, deltaLon будетform a MKCoordinateSpan.

Вы правы, что обе структуры определены одинаково, но это довольно часто, когда две разные структуры имеют разную семантику и, следовательно, определяются отдельно, как вы нашли.

6 голосов
/ 19 марта 2012

MKCoordinateSpan интерпретируется как дельта-значения , тогда как CLLocationCoordinate2D интерпретируется как точка .

Например, допустим, вы хотите определить круговую область, вы бы определили центральную точку и радиус вокруг нее.

В MapKit вы определяете прямоугольную область с помощью MKCoordinateRegion. Центральная точка - CLLocationCoordinate2D (latitude и longitude - оба typedef равны double), а вертикальная и горизонтальная дельта - MKCoordinateSpan (latitudeDelta и longitudeDelta - оба typedef равны double)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...