データ
列指定後のデータ
番号 | 場所 | 場所補足 | 状況 | eNB-LCID | 緯度 | 経度 |
---|---|---|---|---|---|---|
1 | 今治市立花町二丁目 | open | 737335-1,2,3 | 34.0523 | 132.999 | |
2 | 今治市中寺① | 今治中寺郵便局付近 | open | 737331-1,2,3 | 34.0375 | 132.991 |
3 | 今治市桜井四丁目 | 志島ヶ原・綱敷天満神社付近 | open | 737342-7,8,9 | 34.0174 | 133.041 |
4 | 今治市登畑 | レデイ薬局今治国分店付近 | open | 737352-10,11,12 | 34.0195 | 133.016 |
5 | 今治市阿方① | ファミリーマート今治阿方店付近 | open | 737354-4,5,6 | 34.0612 | 132.971 |
6 | 今治市阿方② | マックスバリュ今治阿方店付近 | open | 737354-1,2,3 | 34.0625 | 132.965 |
7 | 今治市波止浜 | ディオ今治北店付近 | open | 737346-7,8,9 | 34.0985 | 132.971 |
8 | 今治市大新田町五丁目 | 今治市営球場付近 | open | 737378-1,2,3 | 34.0809 | 132.989 |
9 | 今治市国分三丁目 | 今治国分郵便局付近 | open | 737374-10,11,12 | 34.0271 | 133.02 |
10 | 今治市玉川町大野 | ファミリーマート玉川店付近 | open | 737376-3,4,5 | 34.0198 | 132.942 |
インストール
!pip install pandas !pip install simplekml
設定
# スプレッドシート url = "https://docs.google.com/spreadsheets/d/e/2PACX-1vRE1NoYtNw1FmjRQ8wcdPkcE0Ryeoc2mfFkCQPHjzwL5CpwNKkLXnBl_F7c0LZjrtbLtRLH55ZVi6gQ/pub?gid=0&single=true&output=csv" # レイヤー名 name="愛媛県" # アイコンファイル名 files = ["open.png", "close.png", "ready.png", "check.png"] # 列番号指定 usecols=[0, 1, 2, 7, 11, 13, 14]
プログラム
import pandas as pd import simplekml df = ( pd.read_csv(url, index_col=0, usecols=usecols, dtype=str) .dropna(how="all") .fillna("") ) df # 空白文字を除去 df["場所"] = df["場所"].str.strip() # KML作成 kml = simplekml.Kml(name=name) # スタイル for file in files: fn = kml.addfile(file) def make_style(fn, scale=1): kmlstyle = simplekml.Style() kmlstyle.iconstyle.scale = scale kmlstyle.iconstyle.icon.href = fn return kmlstyle kmlstylemap = simplekml.StyleMap() kmlstylemap.normalstyle = make_style(fn) kmlstylemap.highlightstyle = make_style(fn) kml.document.stylemaps.append(kmlstylemap) # 位置情報 fol = kml.newfolder() for i, r in df.iterrows(): # 座標 pnt = fol.newpoint(name=r["場所"]) pnt.coords = [(r["経度"], r["緯度"])] # 開局 if r["状況"] == "open": pnt.stylemap = kml.document.stylemaps[0] pnt.description = f'eNB-LCID: {r["eNB-LCID"]}' # 未開局 elif r["状況"] == "close": pnt.stylemap = kml.document.stylemaps[1] # 開局準備 elif r["状況"] == "ready": pnt.stylemap = kml.document.stylemaps[2] # 調査 else: pnt.stylemap = kml.document.stylemaps[3] ex_data = simplekml.ExtendedData() for k, v in r.items(): ex_data.newdata(name=str(k), value=str(v)) pnt.extendeddata = ex_data # KML保存 kml.savekmz("rakuten.kmz")