OSM

3.5. Plot Data dan Layer OpenStreetMap

Tujuan: Menampilkan OpenStreetMap sebagai layer.

Syarat:

  • Telah terinstall paket GISTools dan paket OpenStreetMap.
  • Saat menjalankan script, komputer terkoneksi pada internet.

OpenStreetMap (OSM) adalah proyek kolaboratif dalam menyediakan data spasial dunia, dan didukung oleh banyak pihak baik perorangan maupun kelompok atau perusahaan besar. Kita dapat memanfaatkan data pada OSM ini untuk menjadi layer pada peta kita.

Langkah pertama adalah menyiapkan lingkungan kerja kita dengan membersihkan semua obyek dan window plot yang tengah aktif.

Berikutnya adalah mengunggah paket GISTools, OpenStreetMap dan data ke dalam sistem. Data spasial yang digunakan adalah batas kecamatan Kabupaten Karawang sebagaimana data sebelum pekerjaan ini. Saat mengunggah data langsung kita berikan referensi koordinat.


# Unggah paket GISTools dan OpenStreetMap
library(GISTools)
library(OpenStreetMap)

# Unggah data kedalam object
KW_kec <-readShapePoly("karawang_admkec", proj4string = CRS("+init=EPSG:32748"))

Obyek spasial yang telah siap di sistem kita transformasikan proyeksinya dari UTM ke Geographic (lat/lon). Setelah itu dibuat satu obyek spasial untuk layer outline-nya.


# Transform proyeksi UTM 48S ke Geo Lat/Lon
KW_kec.geo <- spTransform(KW_kec, CRS("+proj=longlat +datum=WGS84"))
KW_kec.outline <- gUnaryUnion(KW_kec.geo, id=NULL)

Untuk menentukan koordinat tile dari layer OpenStreetMap maka kita definisikan batasannya dengan koordinat kiri atas (ul) dan kanan bawah (lr).


# Definisikan batas kiri atas dan kanan bawah
ul <- as.vector(cbind(bbox(KW_kec.geo)[2,2], bbox(KW_kec.geo)[1,1]))
lr <- as.vector(cbind(bbox(KW_kec.geo)[2,1], bbox(KW_kec.geo)[1,2]))

Mengunduh peta melalui OpenStreetMap dari MapQuest. Untuk mengunduh ini kita gunakan fungsi openmap(). Lama pengunduhan tergantung pada koneksi internet. Setelah itu lalu siapkan window plot kemudian lakukan plotting layer dari MapQuest, layer batas kecamatan, dan layer outline.


# Unduh peta dari MapQuest
MyMapQuest <- openmap(ul, lr, NULL, 'mapquest')

# Definisikan window plot dan tampilkan peta
par(mar= c(0,0,0,0))
plot(MyMapQuest, removeMargin=FALSE)
plot(spTransform(KW_kec.geo, osm()), add=TRUE, lwd=2, border="blue")
plot(spTransform(KW_kec.outline, osm()), add=TRUE, lwd=2)

Hasil yang didapat adalah sebagai berikut:

Layer dari MapQuest.

Layer dari MapQuest.

Jika kita coba gunakan layer dari ESRI, yaitu dengan mengganti parameter ‘mapquest’ pada fungsi openmap() menjadi ‘esri’, maka dihasilkan:

Layer dari ESRI.

Layer dari ESRI.

Bagaimana jika layer tersebut berupa data citra satelit? Silakan dicoba dengan mengganti parameter ‘mapquest’ atau ‘esri’ yang telah dicobakan diatas menjadi ‘mapquest-aerial’ dan bandingkan dengan hasil yang didapat dari ‘bing’.

Hasil dari layer ‘mapquest-aerial’ adalah seperti dibawah ini:

Hasil dari 'mapquest-aerial'.

Hasil dari ‘mapquest-aerial’.

Sedangkan dari ‘bing’ adalah sebagai berikut:

Hasil dari Bing.

Hasil dari Bing.

Simpan file script sebagai Project_03_5.R.

Script lengkap dan tampilan proses dapat dilihat pada laman Project_03_5.html.


Referensi fungsi:

_

Advertisements