ios - 如何获得我之前分配的标记位置?ios迅捷
问题描述
我分配了一些值以在谷歌地图中显示标记。当我单击标记时,我想将此标记的数据传递给另一个控制器。
class MapsViewController: UIViewController {
var title_map : String = ""
@IBOutlet weak var googleMapsview: GMSMapView!
var geosearch : [Geosearch]?
private var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// self.map_api_call()
// self.barDesign()
googleMapsview.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
markNearArea()
}
func markNearArea(){
for index in 1...(geosearch?.count)! {
let lat = geosearch?[index-1].lat
let long = geosearch?[index-1].lon
let coordinate = CLLocationCoordinate2D(latitude: lat! , longitude: long!)
let locationMarker = GMSMarker(position: coordinate)
locationMarker.map = self.googleMapsview
locationMarker.title = geosearch?[index-1].title
locationMarker.appearAnimation = .pop
locationMarker.icon = UIImage(named: "map_br.png")
locationMarker.opacity = 1
}
}
}
我想点击标记并想通过地理搜索[位置]
extension MapsViewController: GMSMapViewDelegate {
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool
{
let url = "https://abk.com/?loc=\(String(describing: geosearch![marker.].pageid!))"
if let url = URL(string: url ), UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
return true
}
}
解决方案
您可以通过此获得标记位置
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
let position = marker.position
return true
}
或者,如果您想要其他数据,请userData
使用GMSMarker
. 像这样
首先将数据分配给标记:
locationMarker.userData = //Assign your any type of data
在代表内部
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
let position = marker.position
let markerData = marker.userData // Your marker data
return true
}
推荐阅读
- javafx - JavaFx - 如何打印一个整体的电子表格视图
- c# - 如何调用位于系统远程的exe
- php - 我写了一个 php 脚本,不,我想在 php 中获取 xml 值,但有些值在表中没有查看
- django - 我们可以使用 django orm 来获得如下所示的输出吗
- git - 找不到存储库,无法推送到私人仓库
- json - Laravel:用 UTF-8 编码 JSON 响应
- windows-7 - 如何找到启动文件夹的路径?
- javascript - Electron main.js NODE_ENV 不可用
- angular - npm WARN @angular/material@2.0.0-beta.2 需要 @angular/core@^2.3.0 的对等体,但没有安装
- javascript - Vue将v-on传递给组件内的子元素