Как запустить TopoJSON?

Мне нужно преобразовать файл geojson в topojson и, возможно, упростить файл topojson. Мне удалось установить Node.js и пакет topojson. Но я понятия не имею, как запустить topojson.

Вики перечисляет множество параметров командной строки, но где я могу запустить эти команды? Я пробовал запускать их как в командной строке, так и в оболочке узла. Node, GDAL, ogr2ogr и TopoJSON — все это новые для меня концепции, поэтому я немного сбит с толку и перегружен.

Я кстати на винде работаю.


person Community    schedule 18.05.2013    source источник


Ответы (4)


это должно нормально работать и на окнах

  1. установить nodejs http://nodejs.org/
  2. установить npm https://npmjs.org/doc/README.html
  3. запустите npm install -g topojson в командной строке
  4. используйте командную строку для cd файла geojson
  5. беги topojson -o myNewTopojsonFile.json myOldGeojsonFile.json

происхождение https://gis.stackexchange.com/questions/45138/convert-geojson-to-topojson

person Fresheyeball    schedule 18.05.2013
comment
Первые 4 шага работают нормально. Но при использовании команды topojson мне предлагается указать, что topojson не является внутренней командой... и т.д. - person ; 19.05.2013
comment
На самом деле я отказался от Windows и установил Ubuntu на свой ноутбук :) Сейчас у меня проблемы с установкой gdal, но, по крайней мере, topojson работает. Спасибо за вашу помощь, я отмечу этот ответ как правильный, поскольку он, вероятно, должен работать для большинства пользователей. - person ; 19.05.2013
comment
Я выполняю часть команды npm install -g topojson, но она не работает с такими строками, как gyp ERR! ошибка сборки gyp ERR! Ошибка стека: не найдено: make gyp ERR! стек в F (/usr/local/lib/node_modules/npm/node_modules/what/what.js:43:28) - person Marjorie Roswell; 08.12.2013
comment
@MarjorieRoswell установить gyp - person Fresheyeball; 08.12.2013
comment
Большое спасибо Fresheyeball. Пошел вперед и сделал это только для того, чтобы продолжать получать ошибки. Нужно ли добавлять gyp к моему пути? (кажется, что он находится в нескольких местах, когда я его ищу) Я все еще получаю это сообщение об ошибке, даже после выполнения «sudo npm install -g gyp» (на самом деле, когда я запускаю команду topjson, он жалуется, что d3 отсутствует, и когда я делаю «sudo npm install -g d3», я получаю эту ошибку gyp. - person Marjorie Roswell; 08.12.2013
comment
@MarjorieRoswell да, это похоже на проблему с путем. - person Fresheyeball; 08.12.2013
comment
Успех. Я узнал, что установка Xcode НЕ устанавливает инструменты командной строки по умолчанию. Мне пришлось установить через Xcode > «Настройки» > «Загрузки» > «Компоненты». Я видел инструменты командной строки, отображаемые в: Xcode > «Настройки» > «Местоположения» > «Инструменты командной строки» (там было сказано «Инструменты командной строки» и отображался путь!) Но это не означало, что это установили, видимо. После установки я успешно прошел «npm install -g topojson». - person Marjorie Roswell; 09.12.2013
comment
@MarjorieRoswell о да. Для osx это требование, чтобы сделать почти все. - person Fresheyeball; 09.12.2013

topojson исполняемый файл теперь изменен на geo2topo

  • Шаги установки остаются такими же, как и topojson
  • Чтобы создать файл topo json из файла geo json, geo2topo -o topo-output.json geo-input.json

Один из способов получить geo-input.json — это gdal, который принимает шейп-файл в качестве входных данных и выводит geojson. gdal можно установить с помощью домашнего пивоварения, используя brew install gdal

person Nitin    schedule 21.11.2016

У меня была такая же проблема на Ubuntu 14.04.

Я обнаружил, что мой исполняемый файл node.js называется nodejs, а не node.

Я открыл сценарий topojson (usr/bin/topojson) и обнаружил, что он пытается запустить topojson с исполняемым файлом узла, называемым node.

#!/usr/bin/env node

Я отредактировал этот файл, чтобы вместо этого он работал с nodejs

#!/usr/bin/env nodejs

и теперь он отлично работает для меня.

Надеюсь, это поможет кому-то другому.

person Henry Steere    schedule 03.01.2015
comment
для этого вы можете использовать эту команду: ln -s /usr/bin/nodejs /usr/bin/node - person Lord ST; 22.08.2016
comment
saldy я получаю сообщение об ошибке /bin# ReferenceError: обещание не определено - person Jeryl Cook; 26.06.2020

Он был изменен на geo2topo

1) Бежать

sudo npm install -g geo2topo

2) проверьте, возвращает ли он путь

which geo2topo

Он должен дать путь /usr/bin/geo2topo

3) Используйте его для преобразования вашего файла geojson

geo2topo -o output.json input.json
person Abhishek Chandran    schedule 13.11.2017