-1

そのため、Google マップ (下記参照) から KML ファイルを読み取り、座標だけを取得して、後でデータを操作するためにマトリックスに格納するプログラム (依存関係なし) を作成しようとしています。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
  <name>Driving directions to Commercial St/A1202</name>
  <description><![CDATA[]]></description>
  <Style id="style1">
    <IconStyle>
      <Icon>
        <href></href>
      </Icon>
    </IconStyle>
  </Style>
  <Style id="style2">
    <LineStyle>
      <color>73FF0000</color>
      <width>5</width>
    </LineStyle>
  </Style>
  <Style id="style3">
    <IconStyle>
      <Icon>
        <href></href>
      </Icon>
    </IconStyle>
  </Style>
  <Placemark>
    <name>From: Unknown road</name>
    <styleUrl>#style1</styleUrl>
    <Point>
      <coordinates>-0.168942,51.520180,0.000000</coordinates>
    </Point>
  </Placemark>
  <Placemark>
    <name>Driving directions to Commercial St/A1202</name>
    <styleUrl>#style2</styleUrl>
    <ExtendedData>
      <Data name="_SnapToRoads">
        <value>true</value>
      </Data>
    </ExtendedData>
    <LineString>
      <tessellate>1</tessellate>
      <coordinates>
        -0.168942,51.520180,0.000000
        -0.167752,51.520447,0.000000
        -0.167371,51.520481,0.000000
      </coordinates>
    </LineString>
  </Placemark>
  <Placemark>
    <name>To: Commercial St/A1202</name>
    <styleUrl>#style3</styleUrl>
    <Point>
      <coordinates>-0.073247,51.516960,0.000000</coordinates>
    </Point>
  </Placemark>
</Document>
</kml>

これは上記のような小さなファイルには非効率的ではありませんが、後で解析する必要がある 500 KB 以上のファイルがあります。これらの座標を取得してマトリックスとして保存するだけの効率的な方法(インストールが必要な「非標準」のインポートを含まない)に関する提案はありますか?

4

1 に答える 1

1

したがって、次のようにする必要があります。依存関係とは、Python に付属する標準ライブラリの外側を意味していると思います (標準ライブラリ tbh なしで Python をインストールする方法がわかりません)。

import xml.etree.ElementTree as ET

print 'Starting'

tree = ET.parse('sample_data.xml')
root = tree.getroot()

for child in root.findall('.//{http://earth.google.com/kml/2.2}coordinates'):
    print child.text

本当に ElementTree を使用できない場合は、XML 処理の効率よりも大きな問題があります。

余談ですが... 2分(またはそれ以下)のグーグル検索で、この答えが得られます。

于 2013-10-12T12:30:29.283 に答える