# 算與目標還有多少距離 並在地圖上顯示 ###### tags: `自己玩` ```python= import geocoder import folium import numpy as np qq = input("想看你的位置與目標位置的距離請按 1,要看兩個位置距離請按 2:") if str(qq ) == "1": address = input("請輸入目標地址:") g = geocoder.arcgis(address)#畫在地圖上 lal = g.latlng#換成經緯度 fmap=folium.Map(location= lal, zoom_start=20) print("目標經緯度為:" , lal) a = fmap.add_child(folium.Marker(location=lal,popup='<i>Mt. Hood Meadows</i>',icon=folium.Icon(color="green"))) i = geocoder.ipinfo('me') k = i.latlng b=fmap.add_child(folium.Marker(location=k,popup='<i>Mt. Hood Meadows</i>',icon=folium.Icon(color="red"))) d = 111.12*np.arccos(np.cos(lal[1])*np.cos(k[1])*np.cos(lal[0]-k[0])+np.sin(lal[1])*np.sin(k[1])) print("你與目標的距離為:",d,"km") if str(qq) =="2": address = input("請輸入目標地址:") start = input("請輸入起始地址:") g = geocoder.arcgis(address) lal = g.latlng fmap=folium.Map(location= lal, zoom_start=20) print("目標經緯度為:" , lal) a = fmap.add_child(folium.Marker(location=lal,popup='<i>Mt. Hood Meadows</i>',icon=folium.Icon(color="green"))) i = geocoder.arcgis(start) k = i.latlng print("起始位置經緯度為:",k) b=fmap.add_child(folium.Marker(location=k,popup='<i>Mt. Hood Meadows</i>',icon=folium.Icon(color="red"))) d = 111.12*np.arccos(np.cos(lal[1])*np.cos(k[1])*np.cos(lal[0]-k[0])+np.sin(lal[1])*np.sin(k[1])) print("起始點與目標的距離為:",d,"km") b ``` ## 輸出結果 ### 按1時 ``` 請輸入你的地址:新北市三重區富貴街14號 目標經緯度為: [25.090431932265613, 121.49021232467497] 你與目標的距離為: 21.93521219175773 km ``` ![](https://i.imgur.com/ZOSaAjb.png) ### 按2時 ``` 想看你的位置與目標位置的距離請按 1,要看兩個位置距離請按 2:2 請輸入目標地址:新北市三重區富貴街14號 請輸入起始地址:新北市三重區富福街14號 目標經緯度為: [25.090431932265613, 121.49021232467497] 起始位置經緯度為: [25.083330019881643, 121.49010996403644] 起始點與目標的距離為: 0.4051142058296741 km ``` ![](https://i.imgur.com/Mk7dSzu.png)