Функция маршрутизации Apple Mapkit не работает в КитаеIOS

Программируем под IOS
Ответить
Anonymous
 Функция маршрутизации Apple Mapkit не работает в Китае

Сообщение Anonymous »

Я разрабатываю приложение для iOS с использованием MapKit для расчета времени в пути между двумя координатами.
Все работает отлично, когда я тестирую координаты в США, Японии или Гонконге, если моя сеть находится за пределами материкового Китая.
Однако, когда мое устройство (или симулятор) подключено к сети материкового Китая и всегда выдает ошибку: «Маршруты недоступны»
Некоторые результаты теста:
Гонконг → Гонконг: ✅ работает
Гонконг → Шанхай: ✅ работает
Шанхай → Гонконг: ✅ работает
Япония (Токио → Токио): ❌ провал
США (Нью-Йорк) → Нью-Йорк): ❌ провалить

Код: Выделить всё

struct TravelTimeCalculator {
static func calculateTravelTime(
from: CLLocationCoordinate2D,
to: CLLocationCoordinate2D
) async throws -> TimeInterval {
let sourcePlacemark = MKPlacemark(coordinate: from)
let destPlacemark = MKPlacemark(coordinate: to)

let request = MKDirections.Request()
request.source = MKMapItem(placemark: sourcePlacemark)
request.destination = MKMapItem(placemark: destPlacemark)
request.transportType = .automobile

let directions = MKDirections(request: request)
let response = try await directions.calculate()
guard let route = response.routes.first else {
throw NSError(domain: "No route found", code: -1)
}
return route.expectedTravelTime
}
}

@MainActor
struct TravelTimeView: View {
@State private var travelTime: String = "Calculating..."

var body: some View {
VStack {
Text(travelTime)
.font(.title2)
}
.task {
do {
// Example: Tokyo Station → Shibuya Station
let from = CLLocationCoordinate2D(latitude: 35.6811441, longitude: 139.7644865)
let to   = CLLocationCoordinate2D(latitude: 35.6580382, longitude: 139.6990609)

let seconds = try await TravelTimeCalculator.calculateTravelTime(from: from, to: to)
let minutes = Int(seconds / 60)
travelTime = "🚗 Estimated \(minutes) min"
} catch {
travelTime = "❌ Route not available"
print("Route error: \(error.localizedDescription)")
}
}
}
}
Проверьте все виды комбинаций источника и назначения...

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-in-china
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»