Я хочу сделать приложение, которое частично подражает части поведения, которое имеет стандартное приложение карты. Это оказалось трудным. В первую очередь, я не понимаю, как Вы делаете аннотации подвижными. Как точно Вы делаете это?
Во-вторых: как Вы ищете местоположения?
Перемещение аннотаций
Я предполагаю, что вы следите за поведением Maps. приложение, в котором вы нажимаете и удерживаете булавку, чтобы свободно перемещать ее. Насколько я знаю, встроенного способа перемещения аннотаций нет. Поскольку аннотации являются подклассами UIView
, вы можете рисовать их где и как хотите. Например, вы можете обнаружить нажатие-и-удержание на аннотации, а когда «разблокировано», измените значение centerOffset
аннотации, чтобы перемещать ее касанием. Когда пользователь отпускает представление, вы можете отметить положение на экране и использовать метод MKMapView
convertPoint: toCoordinateFromView:
, чтобы получить координаты, по которым был выпущен штифт.
Поиск местоположения
То, что вы ищете, называется прямым геокодированием. К сожалению, MapKit поставляется только с обратным геокодированием (процесс преобразования координат GPS в страну / город / улицу / и т. Д.). Однако есть несколько альтернатив. Вот несколько способов:
Обратите внимание, что многие API-интерфейсы геокодирования лицензируются по лицензии Creative Commons. или аналогичные лицензии.
С помощью этого сообщения в блоге вы сможете получать аннотации с перетаскиванием. Я использовал его, чтобы сделать то же самое, и это было довольно просто.
Перетаскивание аннотации MapKit с обновлением информации выноски