Die Routenfunktion von Apple Mapkit funktioniert in China nichtIOS

Programmierung für iOS
Anonymous
 Die Routenfunktion von Apple Mapkit funktioniert in China nicht

Post by Anonymous »

Ich entwickle eine iOS-App mit MapKit, um Reisezeiten zwischen zwei Koordinaten zu berechnen.
Alles funktioniert perfekt, wenn ich mit Koordinaten in den USA, Japan oder Hongkong teste, ob sich mein Netzwerk außerhalb des chinesischen Festlandes befindet.
Wenn mein Gerät (oder Simulator) jedoch mit einem Netzwerk auf dem chinesischen Festland verbunden ist, schlägt es immer mit der Fehlermeldung „Wegbeschreibung nicht verfügbar“ fehl.
Einige Testergebnisse:
Hongkong → Hongkong: ✅ funktioniert
Hongkong → Shanghai: ✅ funktioniert
Shanghai → Hongkong: ✅ funktioniert
Japan (Tokio → Tokio): ❌ nicht bestanden
USA (New York → New York): ❌ scheitern

Code: Select all

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)")
}
}
}
}
Testen Sie alle Arten von Quell-/Zielkombinationen...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post