緯度経度などのデータファイルから,マーカーとイメージポップアップ付きの OpenStreetMap 地図を生成

問題定義

提案技術

期待される効果 簡易に構築運用可能な地図サービスシステム構築 ●こんなことでお困りではありませんか?  ・モバイル端末等で日々データを収集している。地図に表示させたいが。何とか素早く、確実に、安価にできないものか?  ・自ら(エンドユーザ)で、地図システムの中身を掌握しながら開発を進めたい.従来型システム開発(提案→仕様策定→実装→テスト)では間に合わず、よりクイックに開発したい ●こんなことができる、こんな用途が考えられます  モバイル端末(GPS付きも可能)で集めた緯度・経度付きの情報を、即時に、地図に一括表示.  地図に基づくあらゆる情報で、パーソナル、特定業務用途の性質をもつもの   ・ヒアリハット地図   ・道路等の検査、調査結果(交通状況、道路付帯施設状況など)   ・団体行動などの把握 ●システム構成 ●使用している既存の技術   拡張可能です:密度表示、住所やゲオコードとの変換 簡易なデモページ:

前準備

Python のインストールと必要なPythonライブラリのインストール(Windows上)

  1. Python 3.12 のインストール

    インストール済みの場合は実行不要。

    管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。

    REM Python をシステム領域にインストール
    winget install --scope machine --id Python.Python.3.12 -e --silent
    REM Python のパス設定
    set "PYTHON_PATH=C:\Program Files\Python312"
    set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python312\Scripts"
    echo "%PATH%" | find /i "%PYTHON_PATH%" >nul
    if errorlevel 1 setx PATH "%PATH%;%PYTHON_PATH%" /M >nul
    echo "%PATH%" | find /i "%PYTHON_SCRIPTS_PATH%" >nul
    if errorlevel 1 setx PATH "%PATH%;%PYTHON_SCRIPTS_PATH%" /M >nul

    関連する外部ページ

    Python の公式ページ: https://www.python.org/

  2. AI エディタ Windsurf のインストール

    Pythonプログラムの編集・実行には、AI エディタの利用を推奨する。ここでは,Windsurfのインストールを説明する。

    管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行して、Windsurfをシステム全体にインストールする。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。

    winget install --scope machine Codeium.Windsurf -e --silent

    関連する外部ページ

    Windsurf の公式ページ: https://windsurf.com/

  3. 必要なPythonライブラリのインストール
    1. Windowsで,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。
    2. 以下のコマンドを実行し,必要なライブラリをインストールする.
      pip install -U pandas folium
      

【関連する外部ページ】

【サイト内の関連ページ】

緯度経度を含むデータファイルの準備

カレントディレクトリの確認

Python プログラムの実行

【サイト内の関連ページ】 Python のまとめ: 別ページ »

  1. 次の Python プログラムを実行
    import os
    print(os.getcwd())
    

AjinKuriakose/UK-Road-Accident-Data-Analysis のデータ

  1. GitHub の AjinKuriakose/UK-Road-Accident-Data-Analysis の Web ページを開く

    https://github.com/AjinKuriakose/UK-Road-Accident-Data-Analysis

  2. clean_data.csv」をダウンロードしたいので、クリック.
  3. 画面が変わる.「Download」をクリック
  4. 先ほど調べた「カレントディレクトリ」に ダウンロードロードしたファイルを置く

    * ファイルの先頭部分は次のようになっている

データファイルの緯度経度などを使っての表示

import pandas as pd
import folium
datafile = "clean_data.csv"
lat, lon = 53.44, -2.24
zoom_start = 16
webfile_name = "d.html"

m = folium.Map(location=[lat, lon], zoom_start=zoom_start)
X = pd.read_csv(datafile)
for index, r in X.iterrows():
    if index < 100:
        p = '<a href="https://maps.google.com/maps?q=&layer=c&cbll=%f, %f&cbp=11,0,0,0,0">%s <br/></a>' % (r.latitude, r.longitude, r.date)
        folium.Marker([r.latitude, r.longitude], popup=p).add_to(m)

m.save(webfile_name)
  • 先ほど調べた「カレントディレクトリ」に d.html ファイルができるので Web ブラウザで開いてみる.地図が表示されれば OK.

    ズームアウトして確認

    マーカーはクリッカブル