GPS 데이터가 포함된 CSV 파일에서 맵 데이터(HTML) 만들기
GPS 데이터가 포함된 CSV 파일
이전에 쓴 기사에서 GPS 데이터가 들어있는 CSV 파일을 만들었습니다.
마지막: htps : // 이 m / ょ ぇ ぇ / ms / 03cf83479 A 504344 또는 9
내용은 이런 느낌입니다.
gps log.csv
time,latitude,longitude,altitude,timestamp,horizontal_accuracy,vertical_accuracy,speed,course
2018/11/18 15:52,34.5,136.53,9.39266777,1542523726,65,10,-1,-1
2018/11/18 15:52,34.6,136.3,9.39266777,1542523717,65,10,-1,-1
2018/11/18 15:52,34.7,136,7.835945129,1542523942,10,4,0,-1
조금 읽기가 어렵지만 시간, 위도, 경도, 고도, ...와 데이터가 나란히 있습니다.
수치는 적당합니다.
CSV 파일을 읽어 데이터 정리
그러면 스크립트 설명으로 들어갑니다.
먼저 가져올 라이브러리에서.
gps_mapmaker.py
# 地図を作成するWebアプリ「Leaflet」を利用したライブラリ
import folium
이번에는 "folium"이라는 라이브러리를 사용합니다. 미리 pip로 설치를 부탁드립니다.
그런 다음 CSV 파일을 엽니다.
# あらかじめ空のリストを2つ用意する
gps_list = []
gps_data = []
# 保存されているgps_log.csvを読み込みモードで開く
with open('gps_log.csv', mode = 'r', encoding = 'utf-8') as f:
# next()で2番目から(csvでは2行目から)データを扱う
next(f)
# csvのrowそれぞれに対して、改行を省いてカンマで区切ってリストにする
# さらにリストのうち先頭3つ(取得時間、緯度、経度)を抽出する
for line in f:
gps_list = line.rstrip('¥n').split(',')
gps_data.append(gps_list[:3])
이제 gps_data 목록에 필요한 데이터를 저장할 수 있습니다. 그러나이 목록은 문자열 유형 목록이므로 folium에서 처리 할 수 있도록 손을 추가합니다.
읽은 문자열 유형 목록을 소수형 목록으로 변환
gps_data_flt = []
time_data = []
for d in gps_data: # gps_dataリストの各要素(リスト型)に対して処理を実行
time_data.append(d[0]) # 取得時間のリストを別途用意する
d.pop(0) # 取得時間の要素を削除する
for i in d: # 要素(リスト型)の中の要素[文字列型]を順に[小数型]に変換
gps_data_flt.append([float(i) for i in d])
gps_data 리스트내의 요소를 「취득 시간」리스트와 「위도, 경도」리스트로 나누어, 「위도, 경도」리스트의 요소를 float형으로 했습니다. 마도로코드한 코드인 생각이 듭니다만, 시행착오한 결과이므로 용서해 주세요.
folium 메서드를 사용하여 맵 데이터 만들기
편집한 데이터를 사용하여 맵 데이터를 만듭니다.
# 地図の基準地点として、最後のログの位置を設定
last_log = gps_data_flt[-1]
# 基準地点と初期の倍率を指定し、地図を作成する
map = folium.Map(location=last_log, zoom_start=30)
# 記録した各ログをマークし、popupを自身の計測時間とする
for f,t in zip(gps_data_flt,time_data):
marker = folium.Marker(f, popup=t)
map.add_child(marker)
# 置いたマーカー同士を線で結ぶ
gps_line = folium.PolyLine(locations=gps_data_flt)
map.add_child(gps_line)
# 地図をhtml形式でこのスクリプトと同じディレクトリに出力
map.save(outfile= "gps_map.html")
작성한 html 파일을 브라우저에서 살펴 보겠습니다.
지도에 마커가 그려져 있네요.
마커를 클릭하면 팝업(취득 시간)을 볼 수 있습니다.
설명은 이상입니다. 꽤 고전했지만 어떻게든 만들 수있었습니다.
리스트나 사전등의 기초적인 처리는 어쩐지 말해 소중하네요.
참고한 URL:
Folium 0.5.0 documentation
ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기주 b. 이오/후우 m/도 cs-v0.5.0/모즈 s. HTML
파이썬 folium 패키지로 지도를 그려보세요
htps : // m / k ↑ t0713 / ms / 85668d 또는 14462c182d
"Python + folium에서 Strava의 "전체"기록을지도로 시각화 🚲"
htps : // 히보마. 하테나아 ry. jp/엔트리/2017/09/13/094056
보충: Pythonista3에서 할 경우
Pythonista3의 경우 Stash를 사용하여 설치해야합니다. 구체적인 방법은 아래를 참조하십시오.
"아직 Pythonista3 사용하지 않았어? - 기본 조작 · StaSh 설치 편"
htps : // 이 m/n_오시미/있어 ms/4아 647f2c8아 3c209fd87b
Stash에서 folium을 설치한 후 branca라는 라이브러리도 함께 설치하십시오. folium 자신이 brance를 사용하는 것 같습니다.
또한 folium을 사용하려면 numpy도 필요하지만 Pythonista3에는 numpy가 기본적으로 설치되어 있습니다. 나는 그것을 깨닫지 않고 설치하고 스크립트가 잘 작동하지 않아 상당히 고민했습니다. 일단 Pythonista3를 다시 다운로드하고 folium과 branca 만 설치하면 움직였습니다. 조심하세요.
Reference
이 문제에 관하여(GPS 데이터가 포함된 CSV 파일에서 맵 데이터(HTML) 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vegaukulele/items/79557a00eacbca9e10f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)