Views: 490 4 0 Read Time:3 Minute, 14 SecondSebagai seorang yang bekerja di bidang logistik dan transportasi, pasti sering kali bersinggungan dengan berbagai jenis data dimana salah satunya adalah peta geolocation. Tulisan ini akan mengulas bagaimana cara memvisualisasikan data latitude dan longitude pada sebuah peta dengan menggunakan Folium Python. Folium bisa melakukan banyak hal, seperti membuat pinpoint, mengganti warna pada peta, membuat radius pada pinpoint, atau memuat peta toposjon. Folium adalah pustaka Python yang memungkinkan Anda membuat peta interaktif menggunakan library Leaflet.js. Pustaka ini sangat berguna untuk visualisasi data geospasial.import csv # Data data = [ ["Pertamina", "Lat", "Long"], ["Prabumulih", -3.440840496, 104.2337601], ["Ramba", -2.6961302, 104.1123653], ["OK", -3.812992204, 104.350026], ["RT", -3.1470553, 104.1163256], ["Adera", -3.262808, 104.1541684], ["Limau", -3.4757064, 104.072869], ["Jambi", -1.6526229, 103.6009533], ["Pendopo", -3.264586, 103.8214948], ["Jambi Merang", -2.0513629, 103.7924965], ["Lirik", -0.2787676, 102.2715392], ["Pangkalan Susu", 4.1198364, 98.2067353], ["Rantau", 4.3330485, 98.0974894], ["Jabodetabek", -6.132770378, 107.0283405], ["Cirebon / Mundu / Subang", -6.6850875, 108.5491675], ["Surabaya", -7.2421686, 112.7354225], ["Cepu", -7.0349444, 111.7428687], ["Sangata", 0.387574, 117.512644], ["Sangasanga", -0.6456044, 117.2364707], ["Tanjung", -2.1496, 115.395564], ["Tarakan", 3.3085805, 117.6044303] ] # Write to CSV with open('pertamina_locations.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerows(data)import csv # Data data = [ ["Pertamina", "Lat", "Long"], ["Prabumulih", -3.440840496, 104.2337601], ["Ramba", -2.6961302, 104.1123653], ["OK", -3.812992204, 104.350026], ["RT", -3.1470553, 104.1163256], ["Adera", -3.262808, 104.1541684], ["Limau", -3.4757064, 104.072869], ["Jambi", -1.6526229, 103.6009533], ["Pendopo", -3.264586, 103.8214948], ["Jambi Merang", -2.0513629, 103.7924965], ["Lirik", -0.2787676, 102.2715392], ["Pangkalan Susu", 4.1198364, 98.2067353], ["Rantau", 4.3330485, 98.0974894], ["Jabodetabek", -6.132770378, 107.0283405], ["Cirebon / Mundu / Subang", -6.6850875, 108.5491675], ["Surabaya", -7.2421686, 112.7354225], ["Cepu", -7.0349444, 111.7428687], ["Sangata", 0.387574, 117.512644], ["Sangasanga", -0.6456044, 117.2364707], ["Tanjung", -2.1496, 115.395564], ["Tarakan", 3.3085805, 117.6044303] ]# Write to CSV with open('pertamina_locations.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerows(data)Dengan menggunakan pustaka Folium, peta interaktif dapat menampilkan titik-titik tempat pengambilan dan pengiriman barang di wilayah misalnya pulau Jawa, Sumatera, dan Kalimantan. Setiap titik pada peta akan dikelompokkan ke dalam beberapa layer berbeda berdasarkan jenis aktivitasnya, misalnya layer pengambilan barang dan layer pengiriman barang untuk cluster tertentu. Penggunaan layer ini memungkinkan visualisasi yang lebih jelas dan terstruktur, sehingga memudahkan dalam mengidentifikasi lokasi-lokasi strategis untuk operasional logistik.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 import pandas as pd import folium from folium.plugins import MarkerCluster from IPython.display import display # Convert list of lists to a DataFrame df = pd.DataFrame(data[1:], columns=data[0]) # Create a Folium Map m = folium.Map(location=[df['Lat'].mean(), df['Long'].mean()], zoom_start=5) # Define groups with centroids groups = { 'Adera': ["Prabumulih", "Ramba", "OK", "RT"], 'Jambi': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Jambi Merang': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Lirik': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Pangkalan Susu': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Rantau': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Jabodetabek': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Cirebon / Mundu / Subang': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Surabaya': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Cepu': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Sangata': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Sangasanga': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Tanjung': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Tarakan': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"] } # Add markers, centroids, and lines to respective centroid layers for centroid, cities in groups.items(): group_layer = folium.FeatureGroup(name=f'Centroid: {centroid}') centroid_location = df[df["Pertamina"] == centroid][["Lat", "Long"]].values[0] # Add centroid marker for the group folium.Marker(location=centroid_location, popup=f'{centroid} Centroid', icon=folium.Icon(color='red')).add_to(group_layer) for city in cities: city_location = df[df["Pertamina"] == city][["Lat", "Long"]].values[0] folium.Marker(location=city_location, popup=city).add_to(group_layer) folium.PolyLine(locations=[city_location, centroid_location], color="blue").add_to(group_layer) group_layer.add_to(m) # Add layer control to map folium.LayerControl().add_to(m) # Display the map in Jupyter Notebook display(m)import pandas as pd import folium from folium.plugins import MarkerCluster from IPython.display import display# Convert list of lists to a DataFrame df = pd.DataFrame(data[1:], columns=data[0])# Create a Folium Map m = folium.Map(location=[df['Lat'].mean(), df['Long'].mean()], zoom_start=5)# Define groups with centroids groups = { 'Adera': ["Prabumulih", "Ramba", "OK", "RT"], 'Jambi': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Jambi Merang': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Lirik': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Pangkalan Susu': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Rantau': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Jabodetabek': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Cirebon / Mundu / Subang': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Surabaya': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Cepu': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Sangata': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Sangasanga': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Tanjung': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"], 'Tarakan': ["Prabumulih", "Limau", "Ramba", "Pendopo", "Adera"] }# Add markers, centroids, and lines to respective centroid layers for centroid, cities in groups.items(): group_layer = folium.FeatureGroup(name=f'Centroid: {centroid}') centroid_location = df[df["Pertamina"] == centroid][["Lat", "Long"]].values[0]# Add centroid marker for the group folium.Marker(location=centroid_location, popup=f'{centroid} Centroid', icon=folium.Icon(color='red')).add_to(group_layer) for city in cities: city_location = df[df["Pertamina"] == city][["Lat", "Long"]].values[0] folium.Marker(location=city_location, popup=city).add_to(group_layer) folium.PolyLine(locations=[city_location, centroid_location], color="blue").add_to(group_layer) group_layer.add_to(m)# Add layer control to map folium.LayerControl().add_to(m)# Display the map in Jupyter Notebook display(m)Output:Dengan fungsi layer pada Folium digunakan untuk mengelompokkan elemen-elemen peta yang berbeda ke dalam beberapa lapisan (layers) yang terpisah. Ini memungkinkan pengguna untuk mengontrol visibilitas dan interaktivitas dari elemen-elemen peta, seperti marker, garis, poligon, dan lain-lain, secara independen.Dengan library ini, peta yang dihasilkan dapat disimpan dalam format HTML dan dibagikan dengan mudah melalui web, menjadikannya sangat berguna untuk berbagai aplikasi, termasuk visualisasi titik pengambilan dan pengiriman barang di wilayah tertentu. Untuk kebutuhan visualisasi data geospasial interaktif saat ini – folium yang paling banyak membantu.Contoh: Please upgrade your browserShare Facebook Twitter LinkedIn About Post Author Muh. Burhanuddin Industrial Engineer, Specialist in Heavy Cargo Transportation and Heavy Lifting Works. Hobby in computer programming, reading and writing. No occupation except waiting for a prayer time. Ready for working as a surveyor, transport planer, or as lifting engineer. https://www.alvinburhani.net Happy 0 0 % Sad 0 0 % Excited 2 100 % Sleepy 0 0 % Angry 0 0 % Surprise 0 0 % Post navigationStowage Plan atau Floor Plan Sistem Manajemen PERDIN