在iOS中向谷歌地图标记添加地名标签

3
我在谷歌地图上有标记,想要添加每个相应地点的名称UILabel。我看到GMSMarker属性标题是特定于标记的infoWindow,从可用研究的少量信息来看,可能需要制作自定义图标?是否有iOS实现(更容易)的示例?
1个回答

3
为了创建自定义标记,您需要对GMSMarker进行子类化,并根据您的需要创建其iconView
来自Google地图文档
  • (UIView*) iconView [读取、写入、分配]

要呈现的标记视图。如果为空,则会回退到icon属性。

示例:
class CustomMarker: GMSMarker {

    var label: UILabel!

    init(labelText: String) {
        super.init()

        let iconView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 50, height:     80)))
        iconView.backgroundColor = .white

        label = UILabel(frame: CGRect(origin: .zero, size: CGSize(width:     iconView.bounds.width, height: 40)))
        label.text = labelText
        iconView.addSubview(label)

        self.iconView = iconView
    }
}

使用方法:

let marker = CustomMarker(labelText: "my_label")
marker.position = CLLocationCoordinate2D(latitude: 0, longitude: 0)
marker.map = //your mapView object

注意,iconView 仅用于创建要呈现的标记的 markdown。您的标记不会像通常的 UIView 一样可以交互,因此添加任何手势或复杂的可滚动视图都不会产生任何效果。

这将改变地图上的标记位置。 - Hemang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接