Overpass API를 사용하여 OpenStreetMap에서 쇠고기 가게에 대한 정보를 가져와 Google 내 지도에 표시
3696 단어 파이썬OpenStreetMap
uMap과 Overpass API (overpass turbo)를 사용하여 OpenStreetMatsuya 맵 만들기
Overpass API
OpenStreetMap 의 지리 정보를 취득하기 위한 API 입니다.
OSM의 Overpass API 설명
취득한 정보의 라이센스는 ODbL입니다.
오픈 소스 라이선스와 마찬가지로 공유, 창작 및 번안을 할 수 있습니다.
참고 : 오픈 데이터 라이센스 고려 (9) ODbL 개요
규동 가게의 지리 정보를 얻는 쿼리는 다음과 같습니다.
OSMサーバー?data=[out:json];node["amenity"="fast_food"]["cuisine"="beef_bowl"];out;
약 600건 등록되어 있다.
전국의 규동점의 점포수는 4000점인 것 같기 때문에, 망라율은!5%정도입니다.
망라율을 높이는 것은 여러분의 협력이 필요합니다.
흥미를 가진 사람은 이쪽으로부터.
포켓몬 GO 매퍼를 위한 OSM 입문
취득 범위를 지정하고 있지 않기 때문에, 대만에 2점 정도 있지만, 신경쓰지 않는 것에.
Google 내 지도에 표시
Google 내 지도에 표시할 KML 파일을 준비합니다.
overpass turbo를 사용하면 KML 파일을 얻을 수 있습니다.
그러나 마커의 정보가 표 형식이 되어 보기 어렵다.
uMap과 같은 가독성이 있는 표시가 되도록(듯이) 합니다.
이번에는 Python을 사용해 보았습니다.
Json 구문 분석
파이썬 json 라이브러리를 사용합니다.
파이썬 표준 라이브러리 json
import json
f = open('sample.json', 'r')
json_dict = json.load(f)
elements = json_dict["elements"]
for element in elements:
lon = element["lon"]
lat = element["lat"]
tags = element["tags"]
if "name" in tags:
name = tags["name"].encode('utf-8')
마커 정보 만들기
OSM의 태그는 많기 때문에, 어디까지 대응할까 고민하다.
하기를 참고로 한다.
OpenStreetMatsuya
if "branch" in tags:
branch = tags["branch"].encode('utf-8')
info += branch + LF
if "opening_hours" in tags:
opening_hours = tags["opening_hours"].encode('utf-8')
info += "営業時間: ".encode('utf-8') + opening_hours + LF
KML 파일 만들기
파이썬 simplekml 라이브러리를 사용합니다.
simplekml : A Simple KML creator
import simplekml
kml = simplekml.Kml()
kml.newpoint( name=name, description=info, coords=[( lon, lat )] )
소스 코드의 전체는 아래에.
Google 내 지도 만들기
아래에서 로그인합니다.
KML 파일을 업로드합니다.
만든 Google 내 지도
스크린샷
Reference
이 문제에 관하여(Overpass API를 사용하여 OpenStreetMap에서 쇠고기 가게에 대한 정보를 가져와 Google 내 지도에 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ohwada/items/806deb12ea8154c9e35c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)