11.1. NextGIS iOS SDK v3

11.1.1. Введение

NextGIS iOS SDK это набор библиотек для работы с геоданным в мобильном приложении для iPhone и iPad. В состав библиотек входят:

Библиотека nextgis_datastore написана на С++11 и основана на GDAL. Она обеспечивает следующие возможности:

  • создание, изменение и удаление геоданных (растровых и векторных)
  • редактирование геоданных (модификация географии и атрибутики)
  • управление геоданными (копирование, перенос, изменение формата и др.)
  • визуализацию геоданных в виде карт при помощи OpenGL/OpenGL ES
  • вспомогательные функции (работа с сетью, oAuth2, json)
  • интеграция с nextgis.com/NextGIS Web (under development now)

Для взаимодействия с библиотекой используется С API и биндинги для других языков программирования при помощи swig.

Библиотека ios_maplib написана на Swift и представляет собой удобную обвязку вокруг C API nextgis_datastore.

11.1.2. Установка

Для использования SDK необходимо Xcode 8 или выше. Также необходимо установить Carthage - легковесный менеджер зависимостей для Swift и Objective-C. Для установки Carthage следуйте инструкциям на следующей странице.

В папке вашего проекта необходимо создать Cartfile со следующим содержанием:

github "nextgis/ios_maplib"

Далее в терминале следует выполнить команду:

carthage update --platform "iOS"

В результате будут скачаны и установлены все необходимые компоненты.

11.1.3. Подключение к проекту

Если планируется показывать текущее местоположение на карте, то необходимо внести в Info.plist следующую пару ключ-значение с типом String:

Privacy - Location When In Use Usage Description | String | Shows your location on the map

На вкладке проекта General settings в секции Linked Frameworks and Libraries перетяните ngstore.framework и ngmaplib.framework из папки Carthage/Build/iOS.

../_images/linked_frameworks_xcode.png

Рис. 11.1. Вкладка проекта General settings секция Linked Frameworks and Libraries.

Далее следует настроить копирование ngstore.framework и ngmaplib.framework в папку сборки. Для этого на вкладке Build Phases следует выбрать иконку со знаком плюс и в контекстном меню выбрать New Run Script Phase. Далее в секции Run Script добавить следующий текст в область под строкой коммандного интерпертатора Shell:

/usr/local/bin/carthage copy-frameworks

Ниже в поле Input Files добавить следующие строки:

$(SRCROOT)/Carthage/Build/iOS/ngstore.framework
$(SRCROOT)/Carthage/Build/iOS/ngmaplib.framework
../_images/build_run_script_xcode.png

Рис. 11.2. Вкладка проекта Build Phases.

Подробнее см. документацию Carthage.

Библиотека собрана с отключенной опцией bitcode поэтому в проекте ее тоже следует выключить. Для этого необходимо в настройках проекта перейти на вкладку Build Settings и для обоих типов сборок Debug и Release указать настройку Enable bitcode NO.

../_images/bitcode_disable_xcode.png

Рис. 11.3. Вкладка проекта Build Settings.

На заключительном этапе на форму необходимо добавить GLK View и назначить ему в качестве базового класса MapView из модуля ngmaplib или производный класс.

../_images/storyboard_xcode.png

Рис. 11.4. Настройка формы окна карты.

Подробнее по работе с библиотекой см. документацию по API.

Демо проекты размещены на отдельной странице.