如何将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等时,请执行此操作。

10-08 05:50