見出し画像

python:CSVファイルの住所で地図にピン止め(プロット)する(バージョンアップ版)

注意
2024/6/30現在、国土地理院のAPIの仕様が変わったらしく、住所から緯度経度が算出できなくなっています。(一時的なのかどうかわかりません)
駅名からは算出出来ることは確認しています。
そのため、以下のソースを購入しても使用できない可能性が高いです。
2024/07/06現在、国土地理院のAPIの仕様が戻ったみたいです。無料のAPIはこういうのがあるから商用には向きませんね。

上記ソースのバージョンアップをしました。
「住所情報を含むCSVファイル」を以降「住所CSVファイル」と呼びます。

1.前回は
  1-1.「住所CSVファイル」の全行に緯度経度が有る場合
  1-2.「住所CSVファイル」の全行に緯度経度が無い場合
  の2パターンを対応していましたが
  1-3.「住所CSVファイル」の行ごとに
      緯度経度が有る場合は緯度経度を取得せず、
      緯度経度が無い場合は緯度経度を取得する。
  の3パターン目を追加しました。
  このことで、「住所CSVファイル」へのデータ追加のメンテナンスが
  容易に出来るようになりました。
  ※末尾行だけでなく先頭行、途中行への追加も可能です。

2.前回は「緯度経度追加後のCSVファイル」「HTMLファイル」の出力を
  ファイルダイアログで指定していましたが、
  自動で出力出来るようにしました。
 ※出力場所は選択した「住所CSVファイル」と同じフォルダです。
  例「c:\work\sample.csv」
   →「c:\work\sample_20241231235959.csv」
    「c:\work\sample_20241231235959.html」


以上がバージョンアップの内容です。
以下、本文です。


この「住所CSVファイル」が

こうなります。


pythonを使用して、Web、サーバー、自端末の「住所CSVファイル」の住所情報を読み込んで地図にピン止め(プロット)する方法です。
※pythonの開発環境を持っていない方は購入をしないように気を付けてください。


1.tk、pandas、requests、foliumをインストールします。
※この意味がわからない方はおそらく実行できないので購入をしないように気を付けてください。

pip install tk
pip install pandas
pip install requests
pip install folium

2.pythonで任意のファイル名(例:mapplot.py)に有料部分のソースコードを貼り付けてください。


3.実行するとファイル選択ダイアログ選択画面が起動します。

ここでWeb、サーバー、自端末の「住所CSVファイル」を選択してください。
※1行目は「データ」ではなく、「項目名」が有る事が前提です。
※Shift-JISの場合、UTF-8に自動変換します。
※TAB区切りはカンマ区切りに自動判別して変換します。

以下でWebの「住所CSVファイル」を使用する例の説明をします。
(サーバー、自端末の「住所CSVファイル」は説明を省略します。)

例:「警視庁」の「犯罪発生情報(年計)」の
  「令和4年 ひったくり(CSVファイル:13KB)」

以下の「住所CSVファイル」へのURLをクリップボードにコピーしてください。
※ダウンロードする必要はありません。

https://www.keishicho.metro.tokyo.lg.jp/about_mpd/jokyo_tokei/jokyo/hanzaihasseijyouhou.files/tokyo_2022hittakuri.csv

「ファイル名」にURLを貼り付けてください。


4.通常はCSVファイルごとに住所の列(位置)はバラバラです。
  
  また「都道府県」「市町村」「マンション名」など
  住所が複数列に分かれている場合がありますので、
  このケースも対応しています。

  4-1.住所が1つの列の場合は、
      対象列の数字を1つ入力して
      「OK」をクリックしてください。
      以下の例では7番目に住所が有るCSVファイルのため
     「7」と入力して「OK」をクリックしてください。

  4-2.住所が複数列に分かれている場合は、
      以下の例のように「6,7,8」のように半角カンマ区切りで
      入力して「OK」をクリックしてください。

   上記メッセージボックスには「番号/1行目の項目名/2行目のデータ」
   のように表示され、住所列を特定しやすくなっています。


5.国土地理院APIを使用して、住所から緯度経度を自動で取得します。
  緯度経度を取得したデータが画面に出力されます。
  結構処理に時間がかかるので我慢して待ってください。
  ※テストの場合は10件程度のデータをお勧めします。


6.緯度経度の取得処理が終わりましたら
  「3」で選択した「住所CSVファイル」と同じフォルダに
  「CSVファイル名_yyyymmddhhnnss.csv」を出力します。
  こちらは末尾の列に緯度経度を追加したCSVファイルです。
  ※緯度経度付きのCSVを出力する理由を説明します。
   緯度経度付きのCSVファイルを読み込んだ場合、
   緯度経度の取得処理が行われないので処理がかなり早くなります。


7.次に「3」で選択した「住所CSVファイル」と同フォルダに
  「CSVファイル名_yyyymmddhhnnss.html」を出力します。
  こちらは地図にピン止め(プロット)した
  HTMLファイルを出力し、デフォルトブラウザで自動起動します。


以上です。
以下の有料部分にソースコードを記載します。


ここから先は

6,887字

¥ 1,000

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?