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

由于没有路可走,所以我决定每次游览时都创建一个plist(我可能也可以使用另一种类型的文件,我只是喜欢使用plist的文件),并在其中制作所有坐标和使用谷歌地球获取这些坐标,但是在60个不同的坐标之后,我停了下来,因为那简直太荒谬了。

因此,当我在运行时点击地图时,我试图制作一个脚本来编写plist的坐标。尽管这种方法行之有效,但仍然让我感到非常不舒服,因为我无法将自动创建的文件保存在Xcode项目中,并且因为它的整体效果不如我期望的那样好。

因此,我的问题是,在创建不在街道上的路线时,我是否可能错过了一些更简单的事情。

最佳答案

尝试使用该网站创建gpx文件。

另请注意,Xcode仅使用标记,因此,如果您找到生成基于<rte><trk>的gpx文件的工具,则Xcode将无法正确模拟您的位置。因此,在链接的网站创建的文件中,您需要将<trkpt>更改为<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)
}

关于ios - MKMapView如何绘制不在道路上的路线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38485554/

10-11 13:31