gpt4 book ai didi

ios - 如何添加指向 map 上图钉的 GPS?

转载 作者:行者123 更新时间:2023-11-30 14:06:59 25 4
gpt4 key购买 nike

我正在制作一个应用程序,在 map 上显示图钉(用户添加的)并将其保存在表格 View 中,我希望在用户点击打开 GPS 的按钮时有 GPS 引导用户,以便他们可以到达那个地方,我该怎么做,这是我在 TableView 中的代码:

 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

cell.textLabel?.text = places[indexPath.row]["name"]

return cell
}

override func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {

activePlace = indexPath.row

return indexPath

}

这是我在 map View 中的代码:

func action(gestureRecognizer:UIGestureRecognizer) {

if gestureRecognizer.state == UIGestureRecognizerState.Began {

var touchPoint = gestureRecognizer.locationInView(self.Map)

var newCoordinate = self.Map.convertPoint(touchPoint, toCoordinateFromView: self.Map)

var location = CLLocation(latitude: newCoordinate.latitude , longitude: newCoordinate.longitude)



CLGeocoder().reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in

var title = ""

if (error == nil) {



if let p = CLPlacemark(placemark: placemarks?[0] as! CLPlacemark) {

var subThoroughfare: String = ""
var thoroughfare: String = ""

if p.subThoroughfare != nil {

subThoroughfare = p.subThoroughfare

}

if p.thoroughfare != nil {

thoroughfare = p.thoroughfare
}

title = "\(subThoroughfare) \(thoroughfare)"

}

}

if title == "" {

title = "added \(NSDate())"
}

places.append(["name":title,"lat":"\(newCoordinate.latitude)","lon":"\(newCoordinate.longitude)"])

我一直在尝试使用下面的代码来添加 GPS,但我有一个预定义的目的地,所以我想我必须将坐标更改为其他内容,但我不知道到底是什么,谢谢您的帮助!

UIApplication.sharedApplication().openURL(NSURL(string: "http://maps.apple.com/maps?daddr=34.539250,-117.222025")!)

我也使用这段代码来获取用户位置

 func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {

var userLocation:CLLocation = locations[0] as! CLLocation

var latitude = userLocation.coordinate.latitude
var longitude = userLocation.coordinate.longitude

var coordinate = CLLocationCoordinate2DMake(latitude, longitude)

var latDelta:CLLocationDegrees = 0.01
var lonDelta:CLLocationDegrees = 0.01

var span:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta)

var region:MKCoordinateRegion = MKCoordinateRegionMake(coordinate, span)

self.Map.setRegion(region, animated: true)

最佳答案

借鉴 @Mingebag 的回答,回应您的评论:您需要在他提供的 openMapForPlace() 方法中将变量设置为与您想要在苹果 map 应用程序中获取路线的 GPS 位置相对应的变量。

无论你在哪里调用这个方法,你都可以向它传递你需要的变量。为此,您实际上只需要以某种方式给出纬度/经度即可。您可以通过以下方式做到这一点:

func openMapsForPlace(lat: Double, lon: Double) {}

或者您拥有的任何格式。

如果您有更好的执行位置,也可以将此代码放在您想要的任何位置:

let regionDistance:CLLocationDistance = 10000

//set the coordinates with your variables
var coordinates = CLLocationCoordinate2DMake(newCoordinates.latitude, newCoordinates.longitude)
let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
var options = [
MKLaunchOptionsMapCenterKey: NSValue(MKCoordinate: regionSpan.center),
MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
]

//now your placemark will have the lat long you put in above
var placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)

var mapItem = MKMapItem(placemark: placemark)
mapItem.name = "\(self.venueName)"

//this line then launches the app for you
mapItem.openInMapsWithLaunchOptions(options)

关于ios - 如何添加指向 map 上图钉的 GPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com