Swiftpack.co - maps-mailru/maps-sdk-ios as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
maps-mailru/maps-sdk-ios
Библиотека карт для iOS
.package(url: "https://github.com/maps-mailru/maps-sdk-ios.git", from: "1.0.15")

MapsSDK

Библиотека карт для iOS

Подключение

Подключение библиотеки осуществляется через Swift Package Manager. В Xcode выберите в меню File -> Swift Packages -> Add Package Dependency и введите в поле адреса репозитория https://github.com/maps-mailru/maps-sdk-ios.

Выберите MapsSDK и добавьте его к цели вашего приложения.

Использование

Импортируйте MapsSDK в файл, где вы будете использовать карту.

Для начала работы с картой необходимо указать:

  • API key для работы с SDK
  • координаты центра карты
  • начальный уровень zoom-а
  • стиль тайлов

import MapsSDK

...

override func viewDidLoad() {
    let mapConfig = MapViewConfig(
        apiKey: "##YOUR_API_KEY##",
        center: Coordinates(lng: 33, lat: 55),
        zoomLevel: 11,
        style: .main
    )
    let mapView = MapView()
    mapView.delegate = self
    mapView.setup(mapConfig)
    view.addSubview(mapView)
    
    mapView.setCurrentLocation(Coordinates(lng: 33, lat: 55), bearing: 0)
}


Управление картой

Установка текущей координаты и направления пользователя

mapView.setCurrentLocation(Coordinates(lng: 33, lat: 55), bearing: 0)

Установка направления карты

mapView.setBearing(90, animated: true)

Установка координат центра карты

mapView.setCenter(Coordinates(lng: 33, lat: 55), animated: true)

Установка уровня зума

mapView.setZoom(11, animated: true)

Маркеры

При создании маркера нужно указать его идентификатор, координату и картинку.

Для картинки рекомендуется использовать изображение размером 48х48 пикселей. Картинка отображается на карте так, чтобы середина нижней грани картинки оказалось в заданной координате. Можно использовать набор из предоставляемых картинок или использовать свою собственную.

let pinImage = UIImage(...) 
mapView.addMarker(id: "marker_id_1", coords: Coordinates(lng: 33, lat: 55), image: .electricPin)
mapView.addMarker(id: "marker_id_2", coords: Coordinates(lng: 33.3, lat: 55.5), image: .custom(pinImage))

Удалить маркер нужно с указанием его идентификатора.

mapView.removeMarker(id: "marker_id_1")

Или удалить все маркеры сразу.

mapView.removeAllMarkers()

Попапы

Для показа попапа на карте, нужно указать идентификатор маркера, для которого он будет отображен, и текст внутри попапа.

mapView.displayPopup(markerId: "marker_id_1", content: "Hello world")

Для скрытия попапа, нужно указать идентификатор маркера.

mapView.hidePopup(markerId: "marker_id_1")

Показ попапа после выбора маркера на карте

Для этого необходимо реализовать метод onMarkerSelect делегата MapViewDelegate.

extension MyController: MapViewDelegate {
    func onMarkerSelect(id: String) {
        mapView.displayPopup(markerId: id, content: "Hello world")
    }
}

Обработка ошибок

Для обработки ошибок используется метод didFail делегата MapViewDelegate.

extension MyController: MapViewDelegate {
    func didFail(_: MapView, withError: Error) {
        print("Did fail with error: \(error.localizedDescription)")
    }
}

SwiftUI

coming soon

GitHub

link
Stars: 0
Last commit: 1 week ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics