如何绘制道路上没有的路线,MKMapView

时间:2016-07-20 16:06:33

标签: ios swift mkmapview overlay

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

由于没有道路我不得不即兴发挥,所以我决定制作一个plist(我可能也可以使用另一种类型的文件,我只是喜欢与plist一起工作)进行每次游览并在那里制作所有坐标的数组,并与谷歌地球获得这些坐标,但在60个不同的坐标后,我停止了,因为它只是荒谬。

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

所以我的问题是,如果有更容易的事情,我可能会错过如何创建不在街道上的路线。

1 个答案:

答案 0 :(得分:0)

尝试使用该网站创建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)
}