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:
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ộc | Mô tả |
|---|---|---|
q | Có | Truy vấn tìm kiếm (2-100 ký tự) |
limit | Không | Số kết quả tối đa (1-10, mặc định: 5) |
lang | Không | Mã ngôn ngữ (mặc định: "en") |
Phản hồi
{
"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ường | Mô tả |
|---|---|
id | Mã định danh duy nhất (ID OpenStreetMap) |
name | Tên địa điểm chính |
displayName | Tên đầy đủ được định dạng với khu vực và quốc gia |
latitude | Tọa độ vĩ độ |
longitude | Tọa độ kinh độ |
country | Tên quốc gia |
countryCode | Mã quốc gia ISO 2 chữ cái |
state | Tên tiểu bang/tỉnh/vùng |
city | Tên thành phố (nếu có) |
Ví dụ Mã
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
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:
// 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:
# 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.