我知道这已经在几年前问过了,但所有涉及使用Google Maps API解决此问题的答案。我想知道是否有适当的方法来解决这个问题,因为iOS8已经出来,并且它为本地MapKit带来了许多改进。平滑的MKPolyline可以沿着路走
基本上我在道路上画了一条折线,它由许多中间点组成。
var locations = [CLLocation]()
for item in list {
locations.append(CLLocation(latitude: CLLocationDegrees(item["location"]["coordinate"]["x"].doubleValue), longitude: CLLocationDegrees(item["location"]["coordinate"]["y"].doubleValue)))
}
var coordinates = locations.map({(location: CLLocation!) -> CLLocationCoordinate2D in return location.coordinate})
var polyline = MKPolyline(coordinates: &coordinates, count: locations.count)
mapView.addOverlay(polyline)
一次有5到30点在地图上。当多段线连接它们时,我会得到或多或少的公平表示。问题是:它不会坚持到路上。
所以我越来越从时间“粗糙”边缘时间。即使如果我使用Google方向API,它也只限于8个方向点,并且基本上决定了如何从A点到B点,沿途绘制平滑的折线。此外,Directions API仅限于每24小时2500次使用。所有我需要做的是调整我目前的折线到最近的公路
非常感谢
你从哪里得到目前的道路坐标('list')? iOS 8在7个月前发布,我不确定你指的是“它为本地MapKit带来了许多改进”。你知道在iOS 6中添加的MKDirectionsRequest类吗? – Anna
@Anna''list''来自JSON响应。它是从A点到B点的中途巴士站的列表。因此,指定这些点对于遵循巴士路线至关重要。看起来像''MKDirectionsRequest''类似于谷歌方向,它自己计算从A点到B点的路线。它看起来不像它允许你自己指定中间点......除非我可以喂食它与所有30点,并执行它们之间的迷你方向计算:) – kernelpanic
格式是无关紧要的。 JSON响应来自哪里?我的观点是:数据的来源是什么?如果该来源不使用与Apple相同的路线图,则无法避免(MapKit不能直接访问道路数据)。解决方法可能是您的建议(从每个坐标之间的MapKit获取路线)。但是,如果你的任何坐标不在MapKit公路上,你将会遇到同样的问题。 – Anna