HEREMaps iOS:缩放到特定点

时间:2019-02-07 18:56:19

标签: ios swift here-api

我需要将NMAMapView缩放到地图范围内的特定点。假设我们有一些标记作为此地图的子视图,位置为pinPoint: CGPoint。 我试图像这样使用NMAMapView的transformCenter属性:

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 :(得分:0)

请尝试使用此代码,该代码仅供参考,您需要根据需要进行修改。

    // 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