overpassを使ってサンフランシスコの緯度経度半径1km以内にバーガーキングがあるかを探す
どうしようもなくバーガーキングを食べたくなったあなたへ。
サンフランシスコにバーガーキングを目当てに旅行に行く人はなかなか居ないとは思いますが、 そんな人向けに。
実装
import overpass import urllib # proxy設定する人 ## proxies = { ## "http":"http://hogehoge", ## "https":"http://hogehoge" ## } api = overpass.API() api = overpass.API(endpoint="https://overpass-api.de/api/interpreter",timeout=600) ## api.proxies=proxies # サンフランシスコの緯度経度から半径1km以内のfast food response = api.get('node(around:1000.0,37.77493,-122.419416)["amenity"="fast_food"];out;') for data in response["features"]: if 'name' in data["properties"] and data["properties"]["name"] == "Burger King": print(data)
結果
2件ありました。
{"geometry": {"coordinates": [-122.421096, 37.7831831], "type": "Point"}, "id": 432817342, "properties": {"addr:city": "San Francisco", "addr:housenumber": "819", "addr:street": "Van Ness Avenue", "amenity": "fast_food", "name": "Burger King", "source": "survey"}, "type": "Feature"} {"geometry": {"coordinates": [-122.421096, 37.7831831], "type": "Point"}, "id": 432817342, "properties": {"addr:city": "San Francisco", "addr:housenumber": "819", "addr:street": "Van Ness Avenue", "amenity": "fast_food", "name": "Burger King", "source": "survey"}, "type": "Feature"}
解説
overpassというライブラリがあり、
openstreetmapのAPIをpythonからコールできるようにしたもの。
よくわからないクエリ方式(overpass QL)もしくは、XMLでリクエストを投げると、JSONでデータを返してくれる。
今回はサンフランシスコの緯度経度と1km以内のfastfoodというoverpass QLを投げて、
そのなかのバーガーキングを表示しました。
OpenLayers4で遊ぼう 無料の地図データをWebに表示! (技術の泉シリーズ(NextPublishing))
- 作者: 佐藤奈々子
- 出版社/メーカー: インプレスR&D
- 発売日: 2018/04/27
- メディア: Kindle版
- この商品を含むブログを見る