実際のマップに最短経路の表示を行うプログラムでosmnxを使用しているのですが、
エラーが出てしまいます。また、anacondaを使用して環境構築した上です。
```import os from pathlib import Path import folium import osmnx as ox query = "Nakamuraku,Nagoya,Aichi,Japan" outdir_path = Path(query.replace(",", "_")) os.makedirs(outdir_path, exist_ok=True) graphml_outfile = outdir_path / "road_network.graphml" if not os.path.isfile(graphml_outfile): G = ox.graph_from_place(query, network_type="drive") ox.save_graphml(G, filepath=graphml_outfile) else: G = ox.load_graphml(graphml_outfile) fmap = ox.plot_graph_folium(G) folium_outfile = outdir_path / "road_network.html" fmap.save(outfile=str(folium_outfile)) png_outfile = outdir_path / "road_network.png" opts = {"node_size": 5, "bgcolor": "white", "node_color": "blue", "edge_color": "blue"} ox.plot_graph(G, show=False, save=True, filepath=png_outfile, **opts) nodes, edges = ox.graph_to_gdfs(G) nodes_csv_outfile = outdir_path / "road_network_nodes.csv" nodes.to_csv(nodes_csv_outfile) edges_csv_outfile = outdir_path / "road_network_edges.csv" edges.to_csv(edges_csv_outfile) start_point = (35.18253738854321, 136.85996828365532) start_node = ox.get_nearest_node(G, start_point) end_point = (35.16163249834248, 136.8824509819242) end_node = ox.get_nearest_node(G, end_point) shortest_path = ox.shortest_path(G, start_node, end_node) new_fmap = ox.plot_route_folium(G, shortest_path, route_map=fmap, color="red") folium.Marker(location=start_point, tooltip="start").add_to(new_fmap) folium.Marker(location=end_point, tooltip="end").add_to(new_fmap) folium_path_outfile = outdir_path / "shortest_path_road_network.html" new_fmap.save(outfile=str(folium_path_outfile)) path_png_outfile = outdir_path / "shortest_path_road_network.png" ox.plot_graph_route( G, shortest_path, show=False, save=True, filepath=path_png_outfile, **opts )
発生している問題・エラーメッセージ
Exception has occurred: ValueError Nominatim could not geocode query "Nakamuraku,Nagoya,Aichi,Japan" to polygonal boundaries File "C:\Users\username\-\-\-\-", line 18, in <module> G = ox.graph_from_place(query, network_type="drive")
試したこと
エラーを検索して、どういうエラーなのかはなんとなく理解できるのですが、具体的に
どうすれば改善されるかわかりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
IndentationError: expected an indented block
出ませんか。
エラー内容にそのような記述はありません。。今発見したのですが、上に示したエラーと最後に
ValueError: Nominatim could not geocode query "Nakamuraku,Nagoya,Aichi,Japan" to polygonal boundaries. のようなエラー内容もございました。
では提示されているコードと実行されているコードが異なっているのかと。
(試行時日本語部は排除しました。)
このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
編集させて頂きました。一応提示したコード、実行したコードを確認したのですが相違ありませんでした。
間違いはない、と言い張るなら、ここでなにしてんねん、というはなしになろうかとw
if文の後ろなど、あきらかにインデントが消えている箇所がありますので、ただしく写せているか確認されたほうが良いでしょう。
まず間違いはないに関してはこのコード自体が間違っているかどうかではなく、提示したコードと実行したコードが間違っていないということで言いました。そちらのコードが記載されているのがこちらです。https://qiita.com/moshi/items/e383491664d028cd2166
あなたの回答
tips
プレビュー