CSVから楽天電測用のKMZを作成

楽天電測 - Google マイマップ

  • アイコンは同梱、URLはだめ
  • folder必要
  • stylemap必要
  • PlacemarkのdescriptionにeNB-LCID
import io
import pathlib

import pandas as pd
import simplekml

data = """\
番号,場所,場所補足,状況,sector,eNB-LCID,PCI,緯度,経度
1,今治市立花町2丁目,,開局,3,"737335-1,2,3","138,139,140",34.052319,132.999271
2,今治市中寺①,今治中寺郵便局付近,開局,3,"737331-1,2,3","97,98,96",34.037485,132.991341
3,今治市桜井4丁目,志島ヶ原・綱敷天満神社付近,開局,3,"737342-7,8,9","239,222,100",34.017402000000004,133.041459
4,今治市登畑,レデイ薬局今治国分店付近,開局,3,"737352-10,11,12","136,137,135",34.019521999999995,133.01629499999999
5,今治市阿方①,ファミリーマート今治阿方店付近,開局,3,"737354-4,5,6","225,227,226",34.061198299999994,132.9708406
6,今治市阿方②,マックスバリュ今治阿方店付近,開局,3,"737354-1,2,3","175,176,174",34.062521999999994,132.96531299999998
7,今治市波止浜,ディオ今治北店付近,開局,3,"737346-7,8,9","350,178,177",34.098534,132.971486
"""

df = pd.read_csv(io.StringIO(data), index_col=0)

df

kml = simplekml.Kml(name="Ehime")

# 開局

open_img = kml.addfile("open.png")

# スタイル
open_normal = simplekml.Style()
open_normal.iconstyle.scale = 1
open_normal.iconstyle.icon.href = open_img

# スタイル
open_highlight = simplekml.Style()
open_highlight.iconstyle.scale = 1
open_highlight.iconstyle.icon.href = open_img

open_stylemap = simplekml.StyleMap()
open_stylemap.normalstyle = open_normal
open_stylemap.highlightstyle = open_highlight

# 未開局

close_img = kml.addfile("close.png")

# スタイル
close_normal = simplekml.Style()
close_normal.iconstyle.scale = 1
close_normal.iconstyle.icon.href = close_img

# スタイル
close_highlight = simplekml.Style()
close_highlight.iconstyle.scale = 1
close_highlight.iconstyle.icon.href = close_img

close_stylemap = simplekml.StyleMap()
close_stylemap.normalstyle = close_normal
close_stylemap.highlightstyle = close_highlight

kml.document.stylemaps.append(open_stylemap)
kml.document.stylemaps.append(close_stylemap)

kml.document.stylemaps

fol = kml.newfolder()

for i, r in df.iterrows():

    # fol

    pnt = fol.newpoint(name=r["場所"])
    pnt.coords = [(r["経度"], r["緯度"])]
    pnt.description = f'eNB-LCID: {r["eNB-LCID"]}'

    if r["状況"] == "開局":

        pnt.stylemap = kml.document.stylemaps[0]

    else:
        pnt.stylemap = kml.document.stylemaps[1]

kml.savekmz("imabari.kmz")

from google.colab import files

files.download("imabari.kmz")