3

私は問題について何日も研究してきました...私はKMLに不慣れで、次の情報を含む1つのファイルを作成したいと思います。

Email
address
postcode
country
telephone
fax
internet
name
image
license
Call number
lat
lng

csvファイルは維持されます。ツールがあればとても嬉しいです。それ以外の場合は、構文がわかっていれば手動で記述します。

私はMacを使用しているので、Windows KMLクリエーターは問題になりません...私は多くのツールを試しましたが、どれも私が望んでいたものではありませんでした。

私が見つけた最高のツールはでしhttp://batchgeo.com/de/たが、KMLファイルはもうありません。

[編集]

Pythonスクリプトでこれを解決する良い方法はありますか?私はすでに.csvを持っています!

よろしくカーティス

4

3 に答える 3

4

.csv ファイルを読み取るには、次のようにcsvモジュールを使用できます。

reader = csv.reader(open("file.csv"))
for row in reader:
  for value in row:
    ...  

ファイルが UTF-8 でエンコードされていると、csvサポートされていないため、問題が発生する可能性があります。しかし、これを処理するラッパーがあります。

もちろん、ファイルを 1 行ずつ読み込んでカンマで分割することもできますvalues=line.split(',')

kml形式はそれほど複雑ではないため、データの表現を作成する上で最も難しいのは、どのように表示するかを決定することです。csv ファイルから読み取った値を挿入するための非常に単純なコードは、次のようになります。

# read field labels from first line in file
header = reader.next()
# prepare static output
templates = [('  <Placemark>\n   <name>{}</name>\n', 'name'),
         ('   <description>\n    <![CDATA[\n     <img src="{}"/>\n', 'image'),
         ('     {}\n', 'address'),
         ('     {}\n', 'postcode'),
         ('     {}\n', 'country'),
         ('     Tel: <span class="tel">{}</span>\n', 'telephone'),
         ('     Mail: <span class="mail">{}</span>\n', 'Email'),
         ('   </description>\n   <Point>\n    <coordinates>{},', 'lat'),
         ('{}</coordinates>\n   </Point>\n  </Placemark>\n', 'lng')]
# lookup function for field values. leading and trailing whitespace will be removed
value = lambda field, array: array[header.index(field)].lstrip().rstrip()

# start output
print '''<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
 <Document>'''
# insert values into xml
for row in reader:
    for t, f in templates:
        print t.format(value(f, row)),

print ' </Document>\n</kml>'
于 2013-01-18T19:56:56.927 に答える
0

BatchGEO は Google Earth タブで KML をサポートしていると思います: http://batchgeo.com/features/google-earth-kml/

これをオンザフライで実行したり、CSV の更新が行われたときに再作成したりしたい場合は、次のことをお勧めします。

  1. 確立された KML 解析/生成ライブラリ (ruby、java、C# [.Net 用の SharpKML が本当に好き]、PHP など) を選択します。
  2. ライブラリを使用して KML オブジェクトを作成し、CSV ファイルを反復処理して、KML ドキュメント オブジェクトに目印 (など) を入力します。
  3. 必要に応じて KML をエクスポートする

コメントに投稿されたスクリプトも確かに機能しますが、既存の KML ライブラリを使用します。

于 2013-01-17T22:52:48.137 に答える