Cara Mengambil Data dari Google Maps dengan R
Pada tahun 2018, pertama kali saya menggunakan layanan Google Geocoding menggunakan R. Waktu itu saya memiliki ribuan alamat toko untuk dicari koordinat longlat-nya. Setelah menyelesaikan tugas tersebut, praktis saya tidak lagi menggunakan layanan Google Cloud Console yang berbasis geolocation secara masif.
Namun beberapa hari belakangan ini, saya tertarik untuk mengoprek layanan tersebut kembali namun bukan dalam hal geocoding.
Kali ini saya berniat untuk mengambil data lokasi yang ada di Google Maps!
Sebagaimana yang kita ketahui bersama, Google Maps menggunakan prinsip crowdsourcing pada layanannya. Setiap user memiliki kesempatan untuk meng-edit, menambah, atau bahkan menghapus suatu lokasi yang ada di Google Maps. Tentunya tim Google Maps akan melakukan verifikasi dan validasi atas masukan setiap user. Walaupun tentunya kita tidak bisa juga mempercayai 100% semua informasi yang tertera di Google Maps.
Sebagai contoh, saya pernah mencari suatu lokasi di Google Maps, namun setelah ditelusuri langsung lokasi tersebut tidak ada karena informasinya out of date.
Lantas bagaimana cara kita mengambil data dari Google Maps?
Kita bisa menggunakan layanan Google Places API di Google Cloud Console!
Apa itu Google Cloud Console?
Saya mendefinisikan GCC sebagai marketplace bagi layanan Google dan mitranya dalam hal data, komputasi, dan artificial intelligence. Saya sendiri bisa mendapatkan banyak layanan yang berguna bagi pekerjaan saya sebagai market researcher di sana.
Kali ini kita perlu mendaftar atau enabling layanan Google Places.
Setelah itu, kita memerlukan API key untuk mendapatkan data yang hendak kita ambil.
Data apa saja yang bisa diambil?
Kita bisa mendapatkan data nama tempat
, koordinat longlat
, rating
lokasi, jam buka-tutup
, review
lokasi, alamat lengkap
, photo
lokasi, dan lain-lain.
Google Places memberikan gambaran tipe-tipe tempat apa saja yang bisa kita ambil datanya sebagai berikut:
Bagaimana cara mengambil datanya?
Sebenarnya cukup mudah!
Kalian hanya perlu menggunakan function google_places()
pada
library(googleway)
di R. Berikut saya berikan langkah-langkahnya:
- Enable layanan Google Places API di GCC.
- Buat API key pada halaman credential. Catat untuk kemudian dimasukkan ke dalam R environment.
- Tentukan titik pusat tempat kita akan mencari dalam format koordinat
longlat
. - Tentukan
radius
(dalam meter) pencarian kita. - Tentukan tipe lokasi yang hendak dicari.
Mudah kan?
Oke, begini script-nya:
Masukkan API Key
library(googleway)
key = xxxxx # masukkan API key kalian di sini.
Tentukan Titik Pusat Pencarian dan Tipe Lokasi
Misalkan saya ingin mencari laundry
di sekitar Summarecon Bekasi.
Saya bisa dengan mudah mendapatkan koordinat longlat
dari Summarecon
Bekasi, yakni (-6.2270906,106.9997416).
Tentukan Radius Pencarian
Misalkan radius
pencariannya adalah 1 km (1.000 m).
Maka skripnya menjadi sebagai berikut:
hasil = google_places(location = c(-6.2270906,106.9997416),
keyword = "laundry",
radius = 1000,
key = key)
Hasil pencariannya saya simpan bernama hasil
berstruktur list.
str(hasil)
## List of 4
## $ html_attributions: list()
## $ next_page_token : chr "Aap_uEBUpm_8t6Keqc8kgNFbCbaFBRBh0bQ3e6m3N-ry1XsKVR03SL1FNdHYw7Dqb33l1KbDBa-Q-IUy6n6jB-RHKdy6CmnE0LWmGM91jiqOIWM"| __truncated__
## $ results :'data.frame': 20 obs. of 16 variables:
## ..$ business_status : chr [1:20] "OPERATIONAL" "OPERATIONAL" "OPERATIONAL" "OPERATIONAL" ...
## ..$ geometry :'data.frame': 20 obs. of 2 variables:
## .. ..$ location:'data.frame': 20 obs. of 2 variables:
## .. .. ..$ lat: num [1:20] -6.22 -6.22 -6.22 -6.23 -6.22 ...
## .. .. ..$ lng: num [1:20] 107 107 107 107 107 ...
## .. ..$ viewport:'data.frame': 20 obs. of 2 variables:
## .. .. ..$ northeast:'data.frame': 20 obs. of 2 variables:
## .. .. .. ..$ lat: num [1:20] -6.22 -6.22 -6.22 -6.23 -6.22 ...
## .. .. .. ..$ lng: num [1:20] 107 107 107 107 107 ...
## .. .. ..$ southwest:'data.frame': 20 obs. of 2 variables:
## .. .. .. ..$ lat: num [1:20] -6.22 -6.22 -6.22 -6.23 -6.22 ...
## .. .. .. ..$ lng: num [1:20] 107 107 107 107 107 ...
## ..$ icon : chr [1:20] "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png" "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png" "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png" "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png" ...
## ..$ icon_background_color: chr [1:20] "#7B9EB0" "#7B9EB0" "#7B9EB0" "#7B9EB0" ...
## ..$ icon_mask_base_uri : chr [1:20] "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet" "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet" "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet" "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet" ...
## ..$ name : chr [1:20] "Wish Laundry" "Fresh & Clean Laundry" "washstation.id Laundry Sepatu Bekasi Jakarta | Jasa Cuci & Vakum Sofa, Springbed, Karpet, Stroller Bekasi Jakarta" "Violetta Laundry" ...
## ..$ opening_hours :'data.frame': 20 obs. of 1 variable:
## .. ..$ open_now: logi [1:20] TRUE TRUE TRUE TRUE TRUE TRUE ...
## ..$ photos :List of 20
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 720
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/113402918209827530454\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEBIhlGET--OZfC65lvcnag9gyap6HaBRLSkMc73Gtf9d3MASuuNSWgah9csE-y_Xc0Q_sYt1f30g8819oaFw720K31n27z3c2pivbb9Jx-"| __truncated__
## .. .. ..$ width : int 1280
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1280
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/107722790111869263059\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEAfzrYZ24OaeuxH9CIEKT0UeYvROLOt_msrzhGLjrRxig00QRTqWd6I8O4mZURXXrpVM4k7dzZkfvUZlZpbyWjxoTrxQ00xyvkzEtbc7OC"| __truncated__
## .. .. ..$ width : int 590
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1040
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/111302418054548970623\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEDU-UfzlCc34otqgDWloLRkZS-Z7KSAD8cfG3tXcsm1Ir3MSWmiitchFUMVnSPVjHKOnA1GaX4Lisx6wzYBAvbWZ0VIBxihI3FU4ugHYkn"| __truncated__
## .. .. ..$ width : int 780
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 3000
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/117377491194941440869\">great king</a>"
## .. .. ..$ photo_reference : chr "Aap_uED7YebpSJT3Dl6_zoMowBwW7N-_uhVVplUF8xQz69t0Fl9AcIEr1N29srWwwYiy7FVZU_xtq-u42ARu5Up4b-9o8YI_Y-jOnCok63lIr7v"| __truncated__
## .. .. ..$ width : int 4000
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1080
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/104446770951814802526\">Petruse Online</a>"
## .. .. ..$ photo_reference : chr "Aap_uECtr8Nd5hxfAidzcwHjxQf49rzEt43oahBVndXEonwHEMZMc50kMryvuGlANcoX32ooJ8ar8ED6PBrc5nqtxoRkEuKXTVDt74K1KyTm5NB"| __truncated__
## .. .. ..$ width : int 1920
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 4128
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/109945841297258353263\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEDrxddAG2C3TqpxSx6LP-Y6AV5AoxbTJ8RpZ90kXgL9HbwMH5JiGYsbYvbcDIJuXUq9wfk7LtV-XFPUk4hFpd4BNXVwF9J4Yt5CIjmM2Yi"| __truncated__
## .. .. ..$ width : int 3096
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 810
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/114785963617572483717\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEBqsSjTCHV99OqvFsIjKNgNITMKTVy-MspmoWRa-G0O4tct_jkTqbu-9MXO2zyQlgRuD2jbp0SwB5tTSI7Zf_j9vb10LiXQmcTMxiQwKU9"| __truncated__
## .. .. ..$ width : int 1440
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1920
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/109721773506554636683\">Sonny Prabowo</a>"
## .. .. ..$ photo_reference : chr "Aap_uEB_ub0rW0H-Z1JbTdKumhcopgY-q0gaqZNJGhR3R-_022JY59JQvq9yfOdGCuGuz-ZXBg9PNQ7GqBPk8NBpVyhbIXyZkQUKlq7464EXwpY"| __truncated__
## .. .. ..$ width : int 1080
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 3264
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/109907237626830792353\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uECgNvNk1nCQl558u4ydbF7O8LaTy3hOgXDIOmKCqEZHmvA5R9b_DxdW-Xt0IeuhiAs2lE_p74suaP5GP9RKbySzmejLZqKb-KSEJknTh6a"| __truncated__
## .. .. ..$ width : int 2448
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 540
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/109146000608510373231\">dhani akbar</a>"
## .. .. ..$ photo_reference : chr "Aap_uECShWXm83RX0_pOI4O4Q55r7xeKHNeVyx3s7WczvTuvWAmEww_y9ookZJYhVRFrN7XTe9uNbo0EiQXo0bri4Tcxm1sQYC4ME6xspn1x1L8"| __truncated__
## .. .. ..$ width : int 960
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1091
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/106805958741738780279\">Refzu Assegaf</a>"
## .. .. ..$ photo_reference : chr "Aap_uEAMptaY70ZOwG-fDSDqy5uBQy2qBaPU27XimhrEAltbhrz2jGKKVzrw7RsTd4iOWwqTm9pov-ehlToFJbxjG4Jyvq1u6HMni-tJhcLtSAX"| __truncated__
## .. .. ..$ width : int 778
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1280
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/104359940442640367133\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEB4ToONcHP6th1JNk7vNL-_uHIhup5GtCAP8pKvdkbD-ulDO9idVBndcHl9Vp1P1tbcoz6_EXLnumcHm-jZlufkPnPmB4jOrhnECdu1jCy"| __truncated__
## .. .. ..$ width : int 960
## .. ..$ : NULL
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 3000
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/108624814593734123707\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEAyYwq_94ljo5tFlDrM2c15pSJXe1eMghXA9fbWPLXLHfLC-t8vscwwlwoLXNXgIbGcVgyeBsCS4lRREaEtO7vYQ41KpW-74lUPAaK4qG1"| __truncated__
## .. .. ..$ width : int 4000
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 810
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/104577197955239441359\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEA3--sVd8d4je75pIfy20O6s9jfLDUOFN33TibdlxHBgQKGtrusQNoiaKM-DKqFIZuXUiJ4p8Uq9Z8f8WFHoWQMiIh99eAn_Bt4EyVcVqi"| __truncated__
## .. .. ..$ width : int 1440
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 3411
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/112896224682708035151\">A Google User</a>"
## .. .. ..$ photo_reference : chr "Aap_uEBXKzo8TXP4XhGHMgZAsaF-n9npm55KsKWC1OBdDSN2S1LkfVEpjbYR5XS4wuqxv4G0sW6n05KCiZf-KX82gTy2nFOIuIWbPdrnynZ6roe"| __truncated__
## .. .. ..$ width : int 2899
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 1439
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/106805958741738780279\">Refzu Assegaf</a>"
## .. .. ..$ photo_reference : chr "Aap_uEAUGcwIGzsQWW3-XLe5_zNKwj1a3YejjXX5BTELddldsyu2sRDUOaO_58h7nff9McS_dfr6j03Fqzx3Zhwo3p3ayiBQ72nfSqviQhaAiWs"| __truncated__
## .. .. ..$ width : int 1080
## .. ..$ :'data.frame': 1 obs. of 4 variables:
## .. .. ..$ height : int 4160
## .. .. ..$ html_attributions:List of 1
## .. .. .. ..$ : chr "<a href=\"https://maps.google.com/maps/contrib/103737421083047787609\">Boy Tampubolon</a>"
## .. .. ..$ photo_reference : chr "Aap_uEAPA6kEno-Ygv7udjJDwmshgKvFS3z5qTSbc7j1gKx0uTAAg9s1EcLYjeJkUC89zcWJrAyX-zGrBzrRfzO_ARDbt08umoYarJ_-z02u4kS"| __truncated__
## .. .. ..$ width : int 3120
## .. ..$ : NULL
## .. ..$ : NULL
## ..$ place_id : chr [1:20] "ChIJlXCISdSNaS4RSVYfabrI-nc" "ChIJbwCgwuWNaS4Rrue6KL_L5Qo" "ChIJ1yD_PAqNaS4R0xY1Ar3buKc" "ChIJ0wJw_vWNaS4R2N2xOsSe9lE" ...
## ..$ plus_code :'data.frame': 20 obs. of 2 variables:
## .. ..$ compound_code: chr [1:20] "QXJR+CW Harapan Jaya, Bekasi City, West Java" "QXHW+9P Marga Mulya, Bekasi City, West Java" "QXHW+XQ Marga Mulya, Bekasi City, West Java" "QX9X+89 Harapan Mulya, Bekasi City, West Java" ...
## .. ..$ global_code : chr [1:20] "6P58QXJR+CW" "6P58QXHW+9P" "6P58QXHW+XQ" "6P58QX9X+89" ...
## ..$ rating : num [1:20] 4.9 5 5 5 5 5 4.9 5 5 4.7 ...
## ..$ reference : chr [1:20] "ChIJlXCISdSNaS4RSVYfabrI-nc" "ChIJbwCgwuWNaS4Rrue6KL_L5Qo" "ChIJ1yD_PAqNaS4R0xY1Ar3buKc" "ChIJ0wJw_vWNaS4R2N2xOsSe9lE" ...
## ..$ scope : chr [1:20] "GOOGLE" "GOOGLE" "GOOGLE" "GOOGLE" ...
## ..$ types :List of 20
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## .. ..$ : chr [1:3] "laundry" "point_of_interest" "establishment"
## ..$ user_ratings_total : int [1:20] 10 8 30 9 10 5 59 15 12 6 ...
## ..$ vicinity : chr [1:20] "Jl. Kapuas Raya No.88B, RT.008/RW.019, Harapan Jaya, Kota Bks" "Jl. Rw. Bugel, RT.002/RW.003, Marga Mulya, Kota Bks" "Jl. Segar wana No.35, RT.003/RW.003, Marga Mulya, Kota Bks" "Jl. Pintu Air, RT.003/RW.001, Harapan Mulya, Kota Bks" ...
## $ status : chr "OK"
Bingung bacanya?
Tenang saja, kita hanya akan ekstrak informasi yang dibutuhkan:
data.frame(
nama = hasil$results$name,
alamat = hasil$results$vicinity,
rating = hasil$results$rating,
buka_sekarang = hasil$results$opening_hours$open_now,
long = hasil$results$geometry$location$lng,
lat = hasil$results$geometry$location$lat
) %>%
knitr::kable(align = "c")
nama | alamat | rating | buka_sekarang | long | lat |
---|---|---|---|---|---|
Wish Laundry | Jl. Kapuas Raya No.88B, RT.008/RW.019, Harapan Jaya, Kota Bks | 4.9 | TRUE | 106.9923 | -6.218925 |
Fresh & Clean Laundry | Jl. Rw. Bugel, RT.002/RW.003, Marga Mulya, Kota Bks | 5.0 | TRUE | 106.9968 | -6.221552 |
washstation.id Laundry Sepatu Bekasi Jakarta | Jasa Cuci & Vakum Sofa, Springbed, Karpet, Stroller Bekasi Jakarta | Jl. Segar wana No.35, RT.003/RW.003, Marga Mulya, Kota Bks | 5.0 | TRUE | 106.9969 | -6.220054 |
Violetta Laundry | Jl. Pintu Air, RT.003/RW.001, Harapan Mulya, Kota Bks | 5.0 | TRUE | 106.9984 | -6.231643 |
Oy laundry | Jl. Rw. Bugel No.7, RT.003/RW.003, Marga Mulya, Kota Bks | 5.0 | TRUE | 106.9966 | -6.219567 |
Laundry Kiloan, ZN Laundry | Jalan Kampung Jl. Pintu Air Raya, RT.003/RW.007, Harapan Mulya, Kota Bks | 5.0 | TRUE | 106.9972 | -6.234622 |
Laundry 150 | Jl. KH. Agus Salim No.150 E, RT.008/RW.007, Bekasi Jaya, Kota Bks | 4.9 | TRUE | 107.0103 | -6.230912 |
Jenics Laundry Premium | Jl. KH. Muchtar Tabrani No.7, RT.4/RW.001, Perwira, Kota Bks | 5.0 | TRUE | 107.0031 | -6.221009 |
Amanah Laundry | Jl. Rw. Bugel No.04, RT.002/RW.003, Marga Mulya, Kota Bks | 5.0 | TRUE | 106.9968 | -6.221731 |
Babe Laundry | Jl. Rw. Bugel No.1, RT.006/RW.002, Marga Mulya, Kota Bks | 4.7 | TRUE | 107.0029 | -6.221938 |
LAUNDRY ( ZUE LAUNDRY SUMMARECON ) | Gg. Assyifa II No.156, RT.004/RW.002, Marga Mulya, Kota Bks | 5.0 | TRUE | 107.0056 | -6.226212 |
Mama Laundry | Kecamatan:, Jl. Perjuangan No.28, RT.001/RW.009, Kelurahan:, Marga Mulya, Kota Bks | 5.0 | TRUE | 107.0062 | -6.227744 |
QWASH LAUNDRY | Jl. KH. Agus Salim No.50, RT.007/RW.006, Bekasi Jaya, Kota Bks | 5.0 | TRUE | 107.0072 | -6.235443 |
Bamboe Laundry 6 | Jl. Kapuas Raya No.180, RT.006/RW.019, Harapan Jaya, Kota Bks | 5.0 | TRUE | 106.9930 | -6.219090 |
Wakib Laundry | Jl.family 1 Kp.Rawa Bugel Kav.A No.27 Rt.1/Rw.10 kel, RT.002/RW.010, Marga Mulya, Bekasi City | 5.0 | TRUE | 106.9956 | -6.220332 |
TSABIT LAUNDRY | Jl. KH. Muchtar Tabrani No.29, RT.003/RW.001, Perwira, Kota Bks | 4.2 | TRUE | 107.0028 | -6.219695 |
LAUNDRY ( ZUE LAUNDRY JL AGUS SALIM ) | Jl. KH. Agus Salim No.130d, RT.002/RW.007, Bekasi Jaya, Kota Bks | 5.0 | TRUE | 107.0084 | -6.233695 |
Shasya’s Laundry | Jl. Perjuangan No.36-14, RT.001/RW.001, Marga Mulya, Kota Bks | 0.0 | TRUE | 107.0005 | -6.235163 |
star laundry bekasi | QXJX+3Q5, RT.006/RW.003, Marga Mulya, Bekasi City | 3.7 | NA | 106.9995 | -6.219861 |
A’la Laundry | Harapan jaya 2, RT.009/RW.019, Harapan Jaya, Kota Bks | 5.0 | TRUE | 106.9933 | -6.219125 |
if you find this article helpful, support this blog by clicking the ads.