如何绘制不在道路上的路线,MKMapView

2024-02-11

所以我一直在尝试使用 MKMapView 和叠加层来创建“不在道路上的道路”。这可能听起来很奇怪,但我想做的是,在我的 iOS 应用程序中,我想绘制特定酒店提供的短途旅行路线,但是到目前为止我发现的所有帖子都集中在现有道路上,因为短途旅行会经过森林、河流等。没有道路可以帮助我。

由于没有道路,我必须即兴创作,所以我决定为每次旅行制作一个 plist(我可能也可以采用另一种类型的文件,我只是喜欢使用 plist 的),并在其中制作所有坐标的数组和使用谷歌地球获取这些坐标,但在 60 个不同的坐标之后我停止了,因为这太荒谬了。

然后我尝试制作一个脚本,当我在运行时点击地图时,将坐标写入 plist。虽然这有效,但仍然很不舒服,因为我无法将自动创建的文件保存在 Xcode 项目中,而且它总体上并没有我希望的那么好。

所以我的问题是,在如何创建不在街道上的路线方面,是否有一些我可能错过的更简单的事情。


尝试使用该网站来创建gpx http://www.gpsvisualizer.com/draw/ file.

另请注意,Xcode 仅使用标签,因此如果您找到生成<rte> or <trk>基于 gpx 文件,Xcode 将无法正确模拟您的位置。因此,在链接网站创建的文件中,您需要更改<trkpt> to <wpt>。下面的代码可能有助于获取折线。

func addRoute() {
  let thePath = NSBundle.mainBundle().pathForResource("Route", ofType: "gpx") // Not sure on this part
  let pointsArray = NSArray(contentsOfFile: thePath!)

  let pointsCount = pointsArray!.count

  var pointsToUse: [CLLocationCoordinate2D] = []

  for i in 0...pointsCount-1 {
    let p = CGPointFromString(pointsArray![i] as! String)
    pointsToUse += [CLLocationCoordinate2DMake(CLLocationDegrees(p.x), CLLocationDegrees(p.y))]
  }

  let myPolyline = MKPolyline(coordinates: &pointsToUse, count: pointsCount)

  mapView.addOverlay(myPolyline)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何绘制不在道路上的路线,MKMapView 的相关文章

随机推荐