Я очень новичок и борюсь с SDK Google Maps. Можно ли использовать карты google maps sdk для фактического создания маршрута? Например, если бы я мог сделать кнопку, которая говорила «Generate Route», а затем после нажатия на нее генерирует маршрут, который пользователь мог бы на самом деле перемещаться, как при использовании реального приложения карт Google Maps? Благодарю.Используйте SDK GoogleMaps для генерации маршрутов?
ответ
Пример:
func getDiectionFromGoogle(startCoordinate: CLLocationCoordinate2D, toLocation: CLLocationCoordinate2D) {
var urlString = "https://maps.googleapis.com/maps/api/directions/json?origin=\(startCoordinate.latitude),\(startCoordinate.longitude)&destination=\(toLocation.latitude),\(toLocation.longitude)&key=\("your key!!")"
urlString = urlString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!
let session = URLSession.shared
let placesTask = session.dataTask(with: URL(string: urlString)!, completionHandler: {data, response, error in
if error != nil {
}
if let jsonResult = (try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers)) as? NSDictionary {
// *******UPDATE**********
print(jsonResult) // this returns a dictionary
if let routes = jsonResult["routes"] as? NSArray {
// example to get data from dictionary
}
})
placesTask.resume()
}
Посмотрите, что вы получите в JsonResult. Вы можете найти все координаты, необходимые для создания путей для вашего направления и многое другое!
Кроме того, вы можете использовать больше параметров в своем запросе json. Взгляните сюда. https://developers.google.com/maps/documentation/directions/intro
// обновление 15 октября
Я думаю, вы столкнулись с проблемой с закодированным путем. Вот как я декодирую путь. Я уверен, что я не делаю простейший путь, но я просто игнорирую его, потому что он просто работает. haha
// you can see a key called polyline in somewhere in the dictionary
// polylineCoordinates are all the coordinates for your routes
// path can be used for polyline
if let polyline = (paths[i] as AnyObject).value(forKey: "polyline") as? NSDictionary {
if let points = polyline.value(forKey: "points") as? String {
let gmsPath = GMSPath(fromEncodedPath: points)
for index in 0 ..< gmsPath!.count() {
let coordinate = gmsPath!.coordinate(at: index)
self.polylineCoordinates.append(coordinate)
self.path.add(coordinate)
}
}
}
Вот документ Google о том, как использовать полилинии. Я не дам вам никакого кода для этого. Я уверен, что вы сможете это решить. Учитесь, поступая правильно? Но если вы что-то застряли, вы можете вернуться ко мне. Я постараюсь помочь :) https://developers.google.com/maps/documentation/ios-sdk/shapes
Я не уверен, что Google обеспечивает навигацию, такую как карты Google, или нет. Я сам создаю навигацию приложения. Я могу попытаться помочь вам в этом, если смогу.
// обновление 20 октября
Вы почти там. Путь [i] происходит отсюда LOL. Действительно уродливый код.
if let jsonResult = (try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers)) as? NSDictionary {
if let routes = jsonResult["routes"] as? NSArray {
if let legs = routes.value(forKey: "legs") as? NSArray {
if let steps = legs.value(forKey: "steps") as? NSArray {
if steps.count != 0 {
if let firstStep = steps.object(at: 0) as? NSArray {
if firstStep.count != 0 {
if let paths = firstStep.object(at: 0) as? NSArray {
if paths.count > 0 {
for i in 0 ..< paths.count {
Чтобы увидеть мой график, путь [0] является начать координаты intersection1, путь 1 является intersection1 к intersection2 и пути [2] является intersection2 до конца координат.
На самом деле мой self.path бесполезен, вы можете просто декодировать путь из jsonResult. Причина, по которой я использую self.polylineCoordinates, заключается в том, что я хочу получить все координаты (например, красный треугольник на моем графике), чтобы создать собственную навигацию. В jsonResult вы можете увидеть некоторые ключи, называемые startAt (если я не помню его неправильно) и endAt, они являются координатами, которые представляют собой черный треугольник в моем графике. Причина, по которой вам может понадобиться получить все координаты, является то, что путь от пересечения к другому пересечению может быть не прямой, это может быть кривая, как пересечение1, к пересечению2.
- 1. автозаполнения генерации маршрутов ошибок
- 2. iOS FacebookSDK + Parse SDK + GoogleMaps SDK
- 3. Редактируемый GMSCircle GoogleMaps SDK для iOS
- 4. О GoogleMaps SDK для лицензий iOS
- 5. GoogleMaps SDK 1.10.21020.0 Обновление iOS
- 6. Используйте JProfiler8 для профилирования верблюжьих маршрутов
- 7. Используйте Phonegap для разработки SDK
- 8. Используйте файл блокировки packrat для генерации цитат
- 9. Используйте один поиск для генерации нескольких значений
- 10. Интеграция GoogleMaps с Mapbox iOS sdk
- 11. Рамка не найдена GoogleMaps sdk в iOS
- 12. GoogleMaps iOS SDK 1.5 не загружается
- 13. iOS GoogleMaps SDK падает при удалении полилиний
- 14. GoogleMaps SDK Кордова расстояние в пикселях?
- 15. GoogleMaps IOS SDK GMSMapView Класс высвобождены
- 16. Swift - GoogleMaps SDK получает координаты при касании
- 17. Ошибка GoogleMaps SDK от CocoapPods IOS Swift
- 18. Быстрое получение идентификатора места из SDK GoogleMaps для iOS
- 19. fitBounds в GoogleMaps SDK для ios не подходит
- 20. Объединение данных для генерации маршрутов в графе. Когда начать?
- 21. Связывание ошибок при генерации SDK
- 22. Используйте для цикла в ggplot2 для генерации списка
- 23. Используйте PostgreSQL для генерации уникального идентификатора для строки при вставке
- 24. Используйте набор маршрутов для работы в функции app.all() узла express
- 25. Алгоритм генерации случайного числа? Не используйте System.Random
- 26. Используйте API GoogleMaps из координат в файле csv в javascript
- 27. Knitr: Используйте вложенные циклы для генерации нескольких отчетов
- 28. Используйте уценку для генерации определений и списка abbr в одном
- 29. JAXB: используйте локальную схемуLocation для генерации классов Java
- 30. Шина gem: Используйте только для генерации запроса вместо выполнения запроса
святое дерьмо это кажется удивительным! Спасибо, что нашли время сделать это и извините за долгое ожидание, прежде чем я отвечу. Однако я совершенно новичок в этом, поэтому я не совсем уверен, как я могу показать это и как/что такое json. Не могли бы вы объяснить это? Благодаря! – skyleguy
Кроме того, я хочу быть ясным, что я буду делать это из приложения iOS, а не для Android! – skyleguy
Это Swift, так же как и ios. В основном или просто, как новичок, jsonResult возвращает словарь, например {«name»: {«John»: «мужчина», «Mary»: «женщина», «Bob»: «male»} –