Проблемы с пониманием MKMapPoint (s) - PullRequest
3 голосов
/ 13 февраля 2012

Может ли кто-нибудь указать мне правильное направление, когда дело доходит до понимания MKMapPoint?

Я понимаю, что это связано с укладкой поверхности шара на двухмерную поверхность. Но я не понимаю, как измеряется каждая «точка»?

Кто-нибудь может привести пример кода?

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

В этом нет ничего особенного ... просто структура для отображения точки на 2D-карте ... вот что говорится в документации ..

MKMapPoint Точка на двухмерной картографической проекции.

typedef struct { двойной х; двойной у; } MKMapPoint;

Поля x Расположение точки вдоль оси x карта. y Расположение точки вдоль оси Y карта. Обсуждение Если вы проецируете изогнутую поверхность земного шара на плоскую поверхность, то, что вы получите, является двухмерной версией карта, где линии долготы кажутся параллельными. Такие карты часто используется, чтобы показать всю поверхность земного шара все сразу. Структура данных MKMapPoint представляет точку на этом двумерном карта.

Фактические единицы карты привязаны к используемым базовым единицам. рисовать содержимое MKMapView, но вам никогда не нужно беспокоиться об этих единицах напрямую. Вы используете точки карты в первую очередь для упростить вычисления, которые было бы сложно сделать с помощью координат значения на изогнутой поверхности. Преобразовав в карту точки, вы можете выполнять эти расчеты на плоской поверхности, которая, как правило, много проще, а затем конвертировать обратно по мере необходимости. Вы можете отобразить между координатные значения и точки на карте, используя MKMapPointForCoordinate и Функции MKCoordinateForMapPoint.

При сохранении картографических данных в файл всегда следует сохранять значения координат (широта и долгота), а не точки на карте.

Доступность Доступно в iOS 4.0 и более поздних версиях. Объявлено в MKGeometry.h

0 голосов
/ 06 февраля 2014

Также прочитайте в документации, что проекция Меркатора используется для преобразования. Вот дополнительное наблюдение: направление на север (y), по-видимому, противоположно стандартным проекциям меркатора (положительное направление - вниз, а не вверх).

0 голосов
/ 29 мая 2012

Если вы хотите нарисовать что-то на карте, которая имеет определенный размер в реальном мире, например, масштаб, то в ваших вычислениях вы умножите любую длину в метрах на результат MKMapPointsPerMeterAtLatitude(...), чтобы получить размерв единицах MKMapPoint.

Если ваша карта отображает только небольшую часть земного шара, MKMapPointsPerMeterAtLatitude(...) выдаст примерно одинаковое постоянное значение для всех широт, участвующих в вашей карте.В этом случае вы можете просто использовать широту в середине вашей карты в качестве аргумента этой функции.

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