Skip to content

GeoPoint

GeoPoint es el tipo de valor de latitud / longitud / altitud del SDK.

let point = GeoPoint(latitude: 35.6812, longitude: 139.7671)
  • latitude: Double
  • longitude: Double
  • altitude: Double?
  • toUrlValue(precision: Int = 6) -> String
  • wrap() -> GeoPointProtocol
  • GeoPoint.fromLatLong(latitude:longitude:)
  • GeoPoint.fromLongLat(longitude:latitude:)
  • GeoPoint.from(position:)

GeoPointProtocol también ofrece:

  • normalize() -> GeoPoint
  • isValid() -> Bool

Usa GeoPoint en cualquier lugar donde MapConductor solicite una coordenada geográfica, incluyendo posiciones de cámara, posiciones de marcadores, puntos de figuras, puntos de mapa de calor y coordenadas de eventos de clic.

let raw = GeoPoint(latitude: 95, longitude: 190)
let normalized = raw.normalize()
let valid = normalized.isValid()
let urlValue = normalized.toUrlValue()

El inicializador principal usa latitud primero y longitud segundo:

let tokyo = GeoPoint(latitude: 35.6812, longitude: 139.7671)

Usa fromLatLong(latitude:longitude:) al adaptar código que nombra explícitamente latitud y longitud. Usa fromLongLat(longitude:latitude:) al adaptar fuentes de datos que almacenan coordenadas en orden longitud-primero, como muchos formatos similares a GeoJSON.

let fromLatLong = GeoPoint.fromLatLong(latitude: 35.6812, longitude: 139.7671)
let fromLongLat = GeoPoint.fromLongLat(longitude: 139.7671, latitude: 35.6812)

isValid() verifica si la latitud y longitud están dentro de los rangos geográficos válidos. normalize() y wrap() son útiles cuando la entrada del usuario o los cálculos producen coordenadas fuera del rango habitual de longitud.

let input = GeoPoint(latitude: 35.6812, longitude: 181.5)
if input.isValid() {
Marker(position: input)
} else {
Marker(position: input.normalize())
}

Los helpers de distancia y dirección están en Spherical, no en GeoPoint:

let distanceMeters = Spherical.computeDistanceBetween(from: pointA, to: pointB)
let headingDegrees = Spherical.computeHeading(from: pointA, to: pointB)

Usa toUrlValue(precision:) al construir URLs, claves de caché o salidas de depuración que necesiten una cadena de coordenada compacta:

let value = tokyo.toUrlValue(precision: 5)