Add openstreetmap.md

This commit is contained in:
mbahsomo 2026-02-03 03:57:17 +00:00
parent 900331247f
commit ff2bae51e0
1 changed files with 104 additions and 0 deletions

104
openstreetmap.md Normal file
View File

@ -0,0 +1,104 @@
---
## ✅ Contoh dasar (JavaScript)
```js
async function getAlamat(lat, lng) {
const res = await fetch(
`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json`
);
if (!res.ok) {
throw new Error(`HTTP error! status: ${res.status}`);
}
const data = await res.json();
return data.display_name;
}
// pakai
(async () => {
try {
const alamat = await getAlamat(-6.2, 106.816666);
console.log(alamat);
} catch (err) {
console.error(err);
}
})();
```
---
## ✅ Dengan **Google Maps API**
```js
async function getAlamatGoogle(lat, lng) {
const apiKey = "API_KEY_KAMU";
const url = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${lng}&key=${apiKey}`;
const res = await fetch(url);
const data = await res.json();
if (data.status !== "OK") {
throw new Error(data.status);
}
return data.results[0].formatted_address;
}
```
---
## ✅ Ambil field detail (jalan, kota, dll)
```js
async function getAlamatDetail(lat, lng) {
const res = await fetch(
`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json`
);
const data = await res.json();
const a = data.address;
return {
jalan: a.road,
kecamatan: a.suburb,
kota: a.city || a.town,
provinsi: a.state,
negara: a.country,
kodepos: a.postcode,
};
}
```
---
## ⚠️ Best practice (penting)
### 🔹 Tambahkan User-Agent (wajib untuk OSM)
```js
fetch(url, {
headers: {
"User-Agent": "MyApp/1.0 (email@example.com)"
}
});
```
### 🔹 Hindari spam request
* Cache hasil
* Delay antar request
---
## 🔥 Versi super ringkas
```js
const alamat = await (
await fetch(`https://nominatim.openstreetmap.org/reverse?lat=-6.2&lon=106.816666&format=json`)
).json();
console.log(alamat.display_name);
```