Skip to content

Mã hóa Địa lý

AstroAPI cung cấp một endpoint mã hóa địa lý để tìm kiếm các địa điểm và lấy tọa độ của chúng. Điều này hữu ích để chuyển đổi tên địa điểm thành các giá trị vĩ độ/kinh độ cần thiết cho các endpoint tính toán.

Tìm kiếm Địa điểm

Tìm kiếm các thành phố, thị trấn và các địa điểm khác theo tên:

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

Tham số Truy vấn

Tham sốBắt buộcMô tả
qTruy vấn tìm kiếm (2-100 ký tự)
limitKhôngSố kết quả tối đa (1-10, mặc định: 5)
langKhôngMã ngôn ngữ (mặc định: "en")

Phản hồi

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

Trường Phản hồi

TrườngMô tả
idMã định danh duy nhất (ID OpenStreetMap)
nameTên địa điểm chính
displayNameTên đầy đủ được định dạng với khu vực và quốc gia
latitudeTọa độ vĩ độ
longitudeTọa độ kinh độ
countryTên quốc gia
countryCodeMã quốc gia ISO 2 chữ cái
stateTên tiểu bang/tỉnh/vùng
cityTên thành phố (nếu có)

Ví dụ Mã

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

// Cách sử dụng
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"]

# Cách sử dụng
results = search_place("Paris")
place = results[0]
print(f"Paris: {place['latitude']}, {place['longitude']}")

Sử dụng với Lá số Tử vi

Kết hợp mã hóa địa lý với tính toán lá số tử vi:

javascript
// Bước 1: Tìm kiếm nơi sinh
const places = await searchPlace("New York");
const birthplace = places[0];

// Bước 2: Tính toán lá số tử vi
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"
  })
});

Hỗ trợ Ngôn ngữ

Endpoint mã hóa địa lý hỗ trợ nhiều ngôn ngữ cho tên địa điểm. Sử dụng tham số lang:

bash
# Tiếng Đức
curl "https://api.astroapi.cloud/api/geocoding/search?q=Munich&lang=de"

# Tiếng Pháp
curl "https://api.astroapi.cloud/api/geocoding/search?q=Munich&lang=fr"

Các mã ngôn ngữ được hỗ trợ bao gồm: en, de, fr, es, it, nl, pt, ru, ja, zh, và nhiều ngôn ngữ khác.

Bộ nhớ đệm

Kết quả mã hóa địa lý được lưu trong bộ nhớ đệm trong 24 giờ để cải thiện hiệu suất. Cùng một truy vấn tìm kiếm sẽ trả về kết quả được lưu trong bộ nhớ đệm mà không cần truy cập dịch vụ mã hóa địa lý ngược chiều.

Giới hạn Tốc độ

Các yêu cầu mã hóa địa lý được tính vào giới hạn tốc độ API của bạn. Xem Giới hạn Tốc độ để biết chi tiết.

AstroAPI Documentation