HEREMaps iOS: масштаб до определенной точки - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно увеличить NMAMapView до определенной точки внутри границ карты.Допустим, у нас есть некоторый маркер в качестве подпредставления этой карты с позицией pinPoint: CGPoint.Я попытался использовать transformCenter свойство NMAMapView следующим образом:

let transformCenter = CGPoint(x: pinPoint.x / mapView.bounds.width, y: pinPoint.y / mapView.bounds.height) // x and y are in range [0, 1]
mapView.transformCenter = transformCenter
mapView.set(zoomLevel: mapView.zoomLevel + 1, animation: .linear)

Но этот код масштабирует карту к центру кадра, а не к точечному указанию.

Я также пытался увеличить карту до нужной точки с кодом ниже:

guard let coordinates = mapView.geoCoordinates(from: pinPoint) else {
    return
}
mapView.set(coordinates: coordinates, to: pinPoint, animation: .linear, zoomLevel: mapView.zoomLevel + 1)

Но это также не работает правильно: после увеличения гео-координаты под маркером менялись после каждого шага увеличения.

1 Ответ

0 голосов
/ 15 февраля 2019

Пожалуйста, попробуйте с этим кодом, этот код только для ознакомления. Вам необходимо изменить его в соответствии с вашими требованиями.

    // create geo coordinate
    let geoCoordCenter = NMAGeoCoordinates(latitude: 49.260327, longitude: -123.115025)
    // set map view with geo center
    self.mapView.set(geoCenter: geoCoordCenter, animation:NMAMapAnimation.none)
    // set zoom level
    self.mapView.zoomLevel = 13.2

Пожалуйста, проверьте больше примеров GitHub .

...