const lat = 24.9884079;
const lng = 121.4598882;
const url = new URL("https://geocoding.zuola.com/api/reverse");
url.search = new URLSearchParams({ lat, lng });
const response = await fetch(url);
const data = await response.json();
if (data.ok) {
console.log(data.result.county_name);
console.log(data.result.town_name);
console.log(data.result.village_name);
}
using System.Net.Http.Json;
using System.Text.Json.Serialization;
using var client = new HttpClient();
var lat = 24.9884079;
var lng = 121.4598882;
var url = $"https://geocoding.zuola.com/api/reverse?lat={lat}&lng={lng}";
var data = await client.GetFromJsonAsync<ReverseResponse>(url);
if (data?.Ok == true) {
Console.WriteLine(data.Result.CountyName);
Console.WriteLine(data.Result.TownName);
Console.WriteLine(data.Result.VillageName);
}
public record ReverseResponse(
[property: JsonPropertyName("ok")] bool Ok,
[property: JsonPropertyName("result")] Village Result
);
public record Village(
[property: JsonPropertyName("county_name")] string CountyName,
[property: JsonPropertyName("town_name")] string TownName,
[property: JsonPropertyName("village_name")] string VillageName
);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var lat = 24.9884079;
var lng = 121.4598882;
var url = "https://geocoding.zuola.com/api/reverse?lat=" + lat + "&lng=" + lng;
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create(url)).GET().build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://geocoding.zuola.com/api/reverse?lat=24.9884079&lng=121.4598882"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data)
}
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct ReverseResponse {
ok: bool,
result: Option<Village>,
}
#[derive(Debug, Deserialize)]
struct Village {
county_name: String,
town_name: String,
village_name: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let url = "https://geocoding.zuola.com/api/reverse?lat=24.9884079&lng=121.4598882";
let data: ReverseResponse = reqwest::get(url).await?.json().await?;
if let Some(result) = data.result {
println!("{} {} {}", result.county_name, result.town_name, result.village_name);
}
Ok(())
}