---
# System prepended metadata

title: 算與目標還有多少距離 並在地圖上顯示
tags: [自己玩]

---

# 算與目標還有多少距離 並在地圖上顯示
###### 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)
