как я могу использовать вывод d13 esp32 в качестве входа в кодировку javascript,

Оказывается, проблема связана со сжатым файлом planet.osm.

Как указано в OSM Wiki , файл планеты сжимается как многопоточный файл, а модуль python bz2 не может читать многопоточные файлы. Однако документация bz2 указывает на альтернативный модуль, который может читать такие файлы, bz2file . Я использовал его, и он отлично работает!

Итак, код должен читаться:

from lxml import etree as et
from bz2file import BZ2File

path = "where/my/fileis.osm.bz2"
with BZ2File(path) as xml_file:
    parser = et.iterparse(xml_file, events=('end',))
    for events, elem in parser:

        if elem.tag == "tag":
            continue
        if elem.tag == "node":
            (do something)


    ## Do some cleaning
    # Get rid of that element
    elem.clear()

    # Also eliminate now-empty references from the root node to node        
    while elem.getprevious() is not None:
        del elem.getparent()[0]

Кроме того, проведя некоторое исследование использования формата PBF (как указано в комментариях), я наткнулся на implm.parser , модуль python, который реализует общий синтаксический анализатор для данных OSM (в формате pbf или xml). Вы можете посмотреть на это!

-1
задан Lynx 13 July 2018 в 18:32
поделиться