2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Map上に賃貸情報一覧をパッと表示したい

Posted at

はじめに

こんにちは。もうすぐ春、新生活ということで、新しい環境に身を置く方々は一人暮らしの季節がやってきますね。一人暮らしのために様々な物件情報を仕入れる中で気に入った物件はお気に入りに登録といった作業をしていると思います。私は来年から一人暮らしを始める予定ですが、いろいろな物件をお気に入り登録しても全ての物件をまとめてどこにあるか把握することができません。ということで、今回はGoogle ColaboratoryPythonを用いて気に入った賃貸情報をまとめてGoogle Map上に表示します。

準備

ExcelのファイルをGoogle Colaboratoryにアップロードします。
ファイルは自由に設定して構いませんが今回は以下のように作ります。賃貸料は例として適当に書いてます。

場所名 位置情報 賃貸料 URL
浅草駅 35.7119534,139.7971771 10.0 https://www.google.co.jp/maps/place/%E6%B5%85%E8%8D%89%E9%A7%85/@35.7119534,139.7971771,17z/
品川駅 35.6275112,139.7250494 15.0 https://www.google.co.jp/maps/place/%E5%93%81%E5%B7%9D%E9%A7%85/@35.6275112,139.7250494,14z/

1. 場所名

マンション名やアパート名を入れます。

2.位置情報

緯度経度を「,」区切りで入れます。
この時、緯度経度情報を調べるため、少し手間のかかる作業をします。

1.住所を調べる

物件情報サイト上に住所が載っているのでその住所をコピーします。

2.Google Map上で検索

コピーした住所をGoogle Mapで検索します。検索することでGoogle Mapに住所の情報が出ます。この時重要なのはURLの方です。

3.URLから緯度経度情報をコピーする

以下は浅草駅のURLとなっています。
(URLが長いので細かい部分のURLを削って浅草近辺のみ表示されるようになってます)

https://www.google.co.jp/maps/place/%E6%B5%85%E8%8D%89%E9%A7%85/@35.7119534,139.7971771,17z/

このURLの @ 以降に緯度経度が「,」区切りで記されています。

緯度
35.7119534
経度
139.7971771
今回は上記のようになります。この緯度経度情報をコピーして貼りましょう。

3.賃貸料

物件情報サイト上に載っている賃貸料金を入れましょう。

4.URL

調べている物件情報サイトのURLを入れましょう。サイトURLを入れておくことでマップからすぐにサイトにアクセスすることができるようになります。
(例ではGoogle MapのURLを貼っています)

Colabで実行する

準備が整えばあとは実行するだけです。
まず必要なライブラリをインストールしましょう。

# 必要なライブラリをインストール
!pip install pandas openpyxl folium

次にライブラリをインポートします。

# ライブラリのインポート
import pandas as pd
import folium
from google.colab import files

保存したExcelファイルをColab上にアップロードします。実行後にファイルをアップロードするように言われるので準備で用意したExcelファイルをアップロードしましょう。

# スプレッドシートファイルをアップロード
uploaded = files.upload()

# アップロードされたファイル名を取得
filename = list(uploaded.keys())[0]

1行目のラベルを読み込みます。

data = pd.read_excel(filename)

マップを作成します。今回は東京を初期の位置に設定します。

m = folium.Map(location=[35.6895, 139.6917], zoom_start=10)  # 初期位置を東京に設定

マップ上にピンを追加し、情報を紐づけます。

# ピンを地図に追加
for index, row in data.iterrows():
    name = row['場所名']  # 1列目: 場所の名前
    location = row['位置情報']  # 2列目: 位置情報 (緯度,経度形式)
    amount = row['賃貸料']  # 3列目: 金額
    url = row['URL']  # 4列目: URL
    lat, lon = map(float, location.split(','))  # 緯度と経度に分割

    # ポップアップのHTMLを作成
    popup_html = f"""
    <b>{name}</b><br>
    賃料: {amount}万円<br>
    <a href="{url}" target="_blank">詳細を見る</a>
    """    
    popup = folium.Popup(popup_html, max_width=300)
    folium.Marker(location=[lat, lon], popup=popup).add_to(m)

# 地図を表示
m.save("map.html")
m

これでマップ上に表示されるようになります。
以下が実行結果です。マップは自由に移動、拡大が可能で、ピンが立っているところをクリックすることで情報を確認することができます。
また、詳細を見るをクリックすることでExcelファイルに載せていた物件情報サイトに飛ぶことができます。
ピン表示.png

おわりに

今回はGoogle Map上に賃貸情報一覧をパッと表示したいということで、Google ColaboratoryPythonを用いて実装を行いました。
一人暮らしのための準備として実装しましたが、賃貸というジャンルだけでなく、旅行の思い出として記録を残したりしてもいいのかもしれません。
この記事を読んだ物件を探している人がいい物件を見つけられますように祈ってます。
おわりです!

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?