Skip to content

Geocodificación

AstroAPI ofrece un endpoint de geocodificación para buscar lugares y obtener sus coordenadas. Esto es útil para convertir nombres de lugares en valores de latitud y longitud requeridos por los endpoints de cálculo.

Buscar Lugares

Buscad ciudades, pueblos y otros lugares por nombre:

bash
curl -X GET "https://api.astroapi.cloud/api/geocoding/search?q=Amsterdam" \
  -H "X-Api-Key: your-api-key"

Parámetros de Consulta

ParámetroObligatorioDescripción
qConsulta de búsqueda (2-100 caracteres)
limitNoNúmero máximo de resultados (1-10, por defecto: 5)
langNoCódigo de idioma (por defecto: "en")

Respuesta

json
{
  "data": [
    {
      "id": "node_123456",
      "name": "Amsterdam",
      "displayName": "Amsterdam, North Holland, Netherlands",
      "latitude": 52.3676,
      "longitude": 4.9041,
      "country": "Netherlands",
      "countryCode": "NL",
      "state": "North Holland",
      "city": "Amsterdam"
    }
  ]
}

Campos de la Respuesta

CampoDescripción
idIdentificador único (ID de OpenStreetMap)
nameNombre principal del lugar
displayNameNombre completo formateado con región y país
latitudeCoordenada de latitud
longitudeCoordenada de longitud
countryNombre del país
countryCodeCódigo ISO de 2 letras del país
stateNombre del estado/provincia/región
cityNombre de la ciudad (si aplica)

Ejemplos de Código

JavaScript

javascript
async function searchPlace(query) {
  const response = await fetch(
    `https://api.astroapi.cloud/api/geocoding/search?q=${encodeURIComponent(query)}`,
    {
      headers: {
        "X-Api-Key": "your-api-key"
      }
    }
  );
  const { data } = await response.json();
  return data;
}

// Uso
const results = await searchPlace("London");
const { latitude, longitude } = results[0];
console.log(`London: ${latitude}, ${longitude}`);

Python

python
import requests

def search_place(query):
    response = requests.get(
        "https://api.astroapi.cloud/api/geocoding/search",
        params={"q": query},
        headers={"X-Api-Key": "your-api-key"}
    )
    return response.json()["data"]

# Uso
results = search_place("Paris")
place = results[0]
print(f"Paris: {place['latitude']}, {place['longitude']}")

Uso con Carta Natal

Combinad la geocodificación con el cálculo de carta natal:

javascript
// Paso 1: Buscar lugar de nacimiento
const places = await searchPlace("New York");
const birthplace = places[0];

// Paso 2: Calcular carta natal
const response = await fetch("https://api.astroapi.cloud/api/calc/natal", {
  method: "POST",
  headers: {
    "X-Api-Key": "your-api-key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    datetime: "1990-06-15T14:30:00",
    latitude: birthplace.latitude,
    longitude: birthplace.longitude,
    timezone: "America/New_York"
  })
});

Soporte de Idiomas

El endpoint de geocodificación admite varios idiomas para los nombres de lugares. Usad el parámetro lang:

bash
# Alemán
curl "https://api.astroapi.cloud/api/geocoding/search?q=Munich&lang=de"

# Francés
curl "https://api.astroapi.cloud/api/geocoding/search?q=Munich&lang=fr"

Los códigos de idioma admitidos incluyen: en, de, fr, es, it, nl, pt, ru, ja, zh y más.

Caché

Los resultados de geocodificación se almacenan en caché durante 24 horas para mejorar el rendimiento. La misma consulta de búsqueda devolverá resultados en caché sin consultar el servicio de geocodificación externo.

Límites de Uso

Las solicitudes de geocodificación cuentan hacia vuestros límites de uso de la API. Consultad Límites de Uso para más detalles.

AstroAPI Documentation