Skip to content

Geocoding

AstroAPI fornisce un endpoint di geocoding per cercare luoghi e ottenere le loro coordinate. Questo è utile per convertire i nomi dei luoghi in valori di latitudine/longitudine richiesti dagli endpoint di calcolo.

Ricerca di Luoghi

Cerca città, paesi e altri luoghi per nome:

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

Parametri della Query

ParametroObbligatorioDescrizione
qQuery di ricerca (2-100 caratteri)
limitNoNumero massimo di risultati (1-10, predefinito: 5)
langNoCodice lingua (predefinito: "en")

Risposta

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"
    }
  ]
}

Campi della Risposta

CampoDescrizione
idIdentificatore univoco (ID OpenStreetMap)
nameNome principale del luogo
displayNameNome completo formattato con regione e paese
latitudeCoordinata di latitudine
longitudeCoordinata di longitudine
countryNome del paese
countryCodeCodice paese ISO a 2 lettere
stateNome dello stato/provincia/regione
cityNome della città (se applicabile)

Esempi di Codice

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;
}

// Utilizzo
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"]

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

Utilizzo con il Tema Natale

Combina il geocoding con il calcolo del tema natale:

javascript
// Passo 1: Cerca il luogo di nascita
const places = await searchPlace("New York");
const birthplace = places[0];

// Passo 2: Calcola il tema natale
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"
  })
});

Supporto Linguistico

L'endpoint di geocoding supporta più lingue per i nomi dei luoghi. Usa il parametro lang:

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

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

I codici lingua supportati includono: en, de, fr, es, it, nl, pt, ru, ja, zh e altri.

Caching

I risultati del geocoding vengono memorizzati nella cache per 24 ore per migliorare le prestazioni. La stessa query di ricerca restituirà risultati memorizzati nella cache senza interrogare il servizio di geocoding upstream.

Limiti di Utilizzo

Le richieste di geocoding vengono conteggiate verso i tuoi limiti di utilizzo API. Consulta Limiti di Utilizzo per i dettagli.

AstroAPI Documentation