我需要将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)但是这段代码会将地图缩放到它的框架中心,而不是pinPoint。
我还试着用下面的代码将地图缩放到所需的点:
guard let coordinates = mapView.geoCoordinates(from: pinPoint) else {
return
}
mapView.set(coordinates: coordinates, to: pinPoint, animation: .linear, zoomLevel: mapView.zoomLevel + 1)但这也不能正常工作:缩放后,标记下的地理坐标在每个缩放步骤后都会发生变化。
发布于 2019-02-15 14:04:55
请尝试使用此代码,此代码仅供您参考,您需要根据您的要求进行修改。
// 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。
https://stackoverflow.com/questions/54580374
复制相似问题