当前位置: 首页 > 面试题库 >

如何通过坐标快速编程方式打开地图App?

臧正平
2023-03-14
问题内容

我有要在地图应用程序中打开的经度和纬度。我从这里尝试了此代码。

    func goToMap(){

    var lat1 : NSString = self.venueLat
    var lng1 : NSString = self.venueLng

    var latitude:CLLocationDegrees =  lat1.doubleValue
    var longitude:CLLocationDegrees =  lng1.doubleValue

    var coordinate = CLLocationCoordinate2DMake(latitude, longitude)

    var placemark : MKPlacemark = MKPlacemark(coordinate: coordinate, addressDictionary:nil)

    var mapItem:MKMapItem = MKMapItem(placemark: placemark)

    mapItem.name = "Target location"

    let launchOptions:NSDictionary = NSDictionary(object: MKLaunchOptionsDirectionsModeDriving, forKey: MKLaunchOptionsDirectionsModeKey)

    var currentLocationMapItem:MKMapItem = MKMapItem.mapItemForCurrentLocation()

    MKMapItem.openMapsWithItems([currentLocationMapItem, mapItem], launchOptions: launchOptions)

}

此功能成功打开地图,但不显示任何图钉。它还显示我不需要的用户位置。我只想在地图上找到提供的纬度和经度的图钉。


问题答案:

这段代码对我来说很好用。

func openMapForPlace() {

    let lat1 : NSString = self.venueLat
    let lng1 : NSString = self.venueLng

    let latitude:CLLocationDegrees =  lat1.doubleValue
    let longitude:CLLocationDegrees =  lng1.doubleValue

    let regionDistance:CLLocationDistance = 10000
    let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
    let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
    let options = [
        MKLaunchOptionsMapCenterKey: NSValue(MKCoordinate: regionSpan.center),
        MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
    ]
    let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = "\(self.venueName)"
    mapItem.openInMapsWithLaunchOptions(options)

}

对于Swift 3.0:

import UIKit
import MapKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        openMapForPlace()
    }

    func openMapForPlace() {

        let latitude: CLLocationDegrees = 37.2
        let longitude: CLLocationDegrees = 22.9

        let regionDistance:CLLocationDistance = 10000
        let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
        let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
        let options = [
            MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center),
            MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)
        ]
        let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
        let mapItem = MKMapItem(placemark: placemark)
        mapItem.name = "Place Name"
        mapItem.openInMaps(launchOptions: options)
    }
}


 类似资料:
  • 有些语言支持显示灯泡的代码操作,为警告/错误提供快速修复(请参阅https://code.visualstudio.com/docs/editor/editingevolved#_code-有关更多信息,请参阅操作)。我喜欢这个功能,但我不喜欢点击灯泡。不幸的是,我找不到在当前光标位置打开灯泡的快捷方式。我如何创建这样的快捷方式? 我试图通过创建这样的自定义键绑定来为创建快捷方式: 但每次我走捷径

  • 问题内容: 如何使用Swift 将地址转换为坐标?我还没有代码,我正在寻找解决方案,但尚未找到任何人。 谢谢。 问题答案: 这很容易。 您还需要添加和导入CoreLocation框架。

  • 如果用户通过MapViewer点击地图,如何获取坐标?我的路由应用程序需要两个坐标开始和目的地。因此,用户必须单击地图,应用程序应该返回坐标并在位置上设置一个点。第二次点击也应该这样做。之后两次点击都应该由路由算法处理。我找不到任何与API17相关的方法或其他东西。

  • 现在有了新的苹果地图实现,这只是向谷歌地图开放了移动Safari。我如何用iOS 6完成同样的行为?我如何以编程方式打开地图应用程序,并让它指向特定的位置/地址/搜索/什么?

  • 我正在寻找一个解决方案来获取数据来创建一个简单的道路专用地图。 在lat/long指定的小区域内,我需要能够在给定街道坐标之间绘制自定义线的数据(起点和终点基本上足够了,并且只能从主要街道开始)。交叉点的坐标也可以连接到我的自定义线。 另一种方法是通过反向地理编码获得指定区域内的所有主要街道名称,然后以某种方式获得每条街道的坐标。 几年前有一个类似的请求:使用谷歌地图API为游戏获取街道图,我想知

  • 本文向大家介绍微信小程序把百度地图坐标转换成腾讯地图坐标过程详解,包括了微信小程序把百度地图坐标转换成腾讯地图坐标过程详解的使用技巧和注意事项,需要的朋友参考一下 百度地图的经纬度放到腾讯地图里面解析地址,导致位置信息显示不正确,所以利用腾讯地图提供的API进行转换。 如果没有开发密钥(key),就到腾讯地图官方文档进行申请和下载qqmap-wx-jssdk.js 腾讯地图官方文档 申请步骤 填写