首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IOS SWIFT子视图中谷歌地图中的标记不定位

IOS SWIFT子视图中谷歌地图中的标记不定位
EN

Stack Overflow用户
提问于 2015-10-22 06:34:57
回答 4查看 2.4K关注 0票数 3

你好,我试图把地图放在子视图中,但是当我把谷歌地图放到子视图中时,它不工作标记,GPS坐标也不起作用

-With子视图

-Without子视图

-SWIFT代码

代码语言:javascript
复制
import UIKit
import GoogleMaps

class HomeViewController: UIViewController, CLLocationManagerDelegate {

    @IBOutlet weak var mapView: GMSMapView!

    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.requestAlwaysAuthorization()

                let camera = GMSCameraPosition.cameraWithLatitude(15.4989, longitude: 73.8278, zoom: 6)
                let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
                mapView.myLocationEnabled = true
//                self.view = mapView
                self.view.addSubview(mapView)
                let marker = GMSMarker()
                marker.position = CLLocationCoordinate2DMake(15.4989, 73.8278)
                marker.title = "Panjim"
                marker.snippet = "Near Don Bosco,Alphran Plaza"
                marker.map?.addSubview(mapView)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-28 14:57:34

这里是添加标记的解决方案

代码语言:javascript
复制
            let marker = GMSMarker()
            marker.position = CLLocationCoordinate2DMake(lat, long)
            marker.appearAnimation = kGMSMarkerAnimationPop
            marker.title = "Marker" // Marker title here
            marker.snippet = "Tap the ↱ Navigate button to start navigating."
            marker.infoWindowAnchor = CGPoint(x: 0.5, y: 0)
            marker.icon = UIImage(named: "marker") //Set marker icon here
            marker.map = self.mapView // Mapview here

动画相机定位

代码语言:javascript
复制
    let camera = GMSCameraPosition.camera(withLatitude: 15.4989, longitude: 73.8278, zoom: 17)
    mapView.animate(to: camera)
票数 3
EN

Stack Overflow用户

发布于 2017-05-28 15:22:51

我找到了解决办法。问题是:我创建了一个新地图,然后在这个新地图上添加了一个标记。然后在新地图上我什么也没做。所以我的解决方案是:

代码语言:javascript
复制
@IBOutlet weak var subviewMap: GMSMapView!

func loadMap() {
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 10.0)
        subviewMap.camera = camera
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = subviewMap
    }

而且它是有效的。

注意:不要忘记将您的子视图作为IB中的GMSMapView类

感谢“O-mkar”和“mixth”的努力。

快乐编码:]

票数 6
EN

Stack Overflow用户

发布于 2015-10-22 07:56:40

我的GMSMapView在另一个UIView中,一切都很好。唯一不同的行是:

代码语言:javascript
复制
marker.map = mapView
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33274718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档