如何将UITextView
发短信编辑放大镜放在Google地图GMSMapView
上
例如,我有一个GMSMapView
显示我的当前位置
我想在调用委托方法时触发叠加放大镜视图mapView:didChangeCameraPosition:
和mapView:willMove:
在GMSMapViewDelegate
目的是根据用户点击的坐标提供叠加缩放子视图(就像github.com/acoomans/iOS-MagnifyingGlass在ImageView上所做的一样)
如果让iOS版Google Maps可以使用,或者iOS MapKit
是否可以支持这种自定义,请告诉我
更新#2:mapView.addSubView(mapSubView)
现在可以工作。但这会污染主GMSMapView
更新#1:我尝试了mapView.addSubView
,尽管它继承自UIView,但似乎不适用于GMSMapView
以下代码段的目的是在地图上检索用户的接触点,并将其转换为CGPoint
以创建第二个GMSMapView
func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D) {
println("Tapping at (\(coordinate.latitude), \(coordinate.longitude))")
// 1. retrieve the user touch position as CLLocationCoordinate2D
let cameraPosition = GMSCameraPosition.cameraWithLatitude(coordinate.latitude, longitude: coordinate.longitude, zoom: 20)
// 2. convert it into CGPoint
let screenTouchPoints = mapView.projection.pointForCoordinate(coordinate)
// 3. set the CGRect for init the mapSubView
let frame = CGRectMake(screenTouchPoints.x, screenTouchPoints.y, 100, 100)
mapSubView = GMSMapView.mapWithFrame(frame, camera: cameraPosition)
// 4. Finally add to the main Map View
mapView.addSubview(mapSubView)
}
最佳答案
使用GMSMapView似乎是合理的。也许在原始图片的上方有第二个GMSMapView(高拐角半径是否要创建一个圆?),并在第二张地图中为alpha和比例以及缩放级别设置动画。每当调用mapView:didChangeCameraPosition等时,请执行此操作。