環境
Mac(OS Monterey ver.12.5.1), Apple M1, memory32GB
OpenStreetMapとは
https://www.openstreetmap.org/
https://openstreetmap.jp/
OpenStreetMap(OSM)は、誰でも自由に地図を使えるよう、みんなでオープンデータの地理情報を作るプロジェクトです。
プロジェクトには、誰でも自由に参加して、誰でも自由に地図を編集して、誰でも自由に地図を利用することが出来ます
準備
こちらの記事を参考にローカルPCで動かさせて頂くだけの記事です
anacondaではなく、アプリケーション-->ユーティリティ-->ターミナルから開きます
事前にインストール
pip3 install cartopy
pip3 install contextily
実行
以下記事を参考に実行する
以下記事では東京駅(の緯度経度)に、赤い丸をプロットしている。
(以下を参考に日本語をMeiryoで表示したかったが今回は実行優先した)
python3 test.py
test.pyimport cartopy.crs as ccrs import contextily as cx import matplotlib.pyplot as plt import pyproj from matplotlib.offsetbox import AnchoredText def main(): # 日本語フォントの設定 # plt.rcParams["font.family"] = "ボールド・イタリック" #"Meiryo" # 対象地域の適当な座標系を設定 crs = ccrs.epsg(6677) # 平面直角座標系 9系(JGD2011) # 座標系に対応したオブジェクト fig = plt.figure(figsize=(8, 8)) # 実際の出力サイズは描画領域で決まるため、ここでは最大サイズとして指定。 ax = fig.add_subplot(1, 1, 1, projection=crs) # projectionへのcrsの指定により地理空間に投影 # 描画領域の設定(東京駅周辺の座標を確認して入力) ax.set_xlim(-8000.0, -4000.0) ax.set_ylim(-37000.0, -34000.0) # ベースマップ(OpenStreetMap)の追加 cx.add_basemap(ax, crs=crs, zoom=16, source="http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") # 図形(ポイント)の描画 lat, lon = 35.6810912, 139.7671861 # 東京駅の緯度経度 transformer = pyproj.Transformer.from_crs("EPSG:4326", crs) y, x = transformer.transform(lat, lon) plt.scatter(x, y, s=200, c="red", alpha=0.5, label="Tokyo Station") # 凡例の描画 ax.legend(loc="upper right", prop={"size": 20}) # OpenStreetMapのクレジットを右下隅に表示 text_box = AnchoredText("© OpenStreetMap contributors", loc="lower right", borderpad=0, frameon=True) plt.setp(text_box.patch, facecolor="white", alpha=0.6, linewidth=0) ax.add_artist(text_box) # プロットエリアの枠を非表示 ax.set_axis_off() # プロットエリア以外の部分をなくし、地図部分のみをファイルに出力 fig.tight_layout(pad=0) fig.savefig("output.png", bbox_inches="tight", pad_inches=0) if __name__ == "__main__": main()
参考