Проблема с установкой Osmosis для OpenStreetMap в Mac OS Monterey

#openstreetmap #osmosis

#openstreetmap #осмос

Вопрос:

Я хочу установить Osmosis на свой Macbook, который в настоящее время работает под управлением macOS Monterey 12.0.1

Следуя инструкциям по установке, я сделал следующее:

  1. Я загрузил последнюю версию (0.48.3 на момент публикации)
  2. Я перешел к инструкциям по установке OSX, и на скриншоте ниже показан объем инструкций:

введите описание изображения здесь

  1. Делая все возможное, чтобы следовать (я новичок в командной строке Linux), я выполнил команды на скриншоте выше.
  2. После соответствующего перемещения я попытался запустить osmosis командную строку, чтобы посмотреть, появится ли что-нибудь, но мне сказали, что команда не найдена.
  3. Когда я запускаю файл osmosis (набрав open bin when в моем домашнем каталоге пользователя, появляется новое окно терминала, в котором отображается куча документации об osmosis, и нет возможности редактировать или запускать какие-либо команды.
 Last login: Sat Dec  4 18:47:24 on ttys000
/opt/osmosis/bin/osmosis ; exit;
(base) darrenconly@Darrens-MacBook-Pro ~ % /opt/osmosis/bin/osmosis ; exit;
osmosis

Example Usage

Import a planet file into a local PostgreSQL database.

osmosis --read-xml file=~/osm/planbet/planet.osm --write-apidb host="x" database="x" user="x" password="x"

Export a planet file from a local PostgreSQL database.

osmosis --read-apidb host="x" database="x" user="x" password="x" --write-xml file="planet.osm"

Derive a change set between two planet files.

osmosis --read-xml file="planet2.osm" --read-xml file="planet1.osm" --derive-change --write-xml-change file="planetdiff-1-2.osc"

Derive a change set between a planet file and a database.

osmosis --read-mysql host="x" database="x" user="x" password="x" --read-xml file="planet1.osm" --derive-change --write-xml-change file="planetdiff-1-2.osc"

Apply a change set to a planet file.

osmosis --read-xml-change file="planetdiff-1-2.osc" --read-xml file="planet1.osm" --apply-change --write-xml file="planet2.osm"

Sort the contents of a planet file.

osmosis --read-xml file="data.osm" --sort type="TypeThenId" --write-xml file="data-sorted.osm"

The above examples make use of the default pipe connection feature, however a simple read and write planet file command line could be written in two ways. The first example uses default pipe connection, the second explicitly connects the two components using a pipe named "mypipe". The default pipe connection will always work so long as each task is specified in the correct order.

osmosis --read-xml file="planetin.osm" --write-xml file="planetout.osm"

osmosis --read-xml file="planetin.osm" outPipe.0="mypipe" --write-xml file="planetout.osm" inPipe.0="mypipe"

Full usage details are available at: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage


Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]
 

Итак, все сказанное, как мне заставить osmosis работать, как описано в этих примерах использования? Когда я запускаю open bin , кажется, что запускается исполняемый файл osmosis, но он не позволяет мне ничего делать или запускать какие-либо команды.

К вашему сведению, похоже, что этот вопрос задавался ранее на StackExchange в начале этого года, но был менее подробным, и до сих пор никто на него не ответил.

Ответ №1:

Решаемая!

Короткий ответ: мне нужно было добавить путь к папке исполняемого файла osmosis в $PATH .

Конкретные шаги, которые я сделал:

  1. Откройте .zshrc (я использую zsh, а не терминал bash)
  2. Добавьте следующее в файл .zshrc:
 # Adding Osmosis executable to path
path =('/folder/where/osmosis/executable/is')
export PATH
 

После выполнения вышеуказанных действий вы можете запустить osmosis из командной строки, как указано в документации

Похоже, что инструкции OSM wiki (см. Скриншот в моем исходном сообщении), По сути, делают то же самое (т. Е. Просто Добавляют путь к исполняемому файлу osmosis в $PATH ), но они не сработали для меня. Не уверен, почему.