Como converter OSM para GeoJson

Boa Tarde,

Gostaria de saber como eu posso converter um arquivo .osm para .geojson utiliyando como OS o windows 7. Eu nao gostaria de converter o arquivo on the fly mas sim ter um arquivo ja .geojson pronto pra ser utilizado. Ja tentei utilizar o osm2geo sem sucesso. Alguem possui algum exemplo funcional ou poderia me ajudar ?

Obrigado!

Já tentou o https://github.com/tyrasd/osmtogeojson ?
É o que o overpass utiliza

Obrigado pela resposta.

Me da um step by step de como você utilizaria ele como um arquivo do Windows 7. Por favor. Vou tentar aqui.

Se for para um pequeno teste, use a demo: http://tyrasd.github.io/osmtogeojson/

Windows é coisa do capeta }:slight_smile:

Mas seria isso:

  • Baixar o nodejs http://nodejs.org/download/ e instalar
  • Criar o diretório em C:\Users\seuusuario\AppData\Roaming\npm (ou o equivalente disso; abre um prompt e vê o caminho que dá um erro de ENOENT quando você executar “npm” apenas)
  • Dentro do prompt:
    • npm install -g osmtogeojson
    • osmtogeojson seuarquivo.osm > saida.geojson

Obrigado novamente naoliv

Na minha tentativa de instalar obtive esse erro, como eu configuro o proxy ?

C:\Users\XXXXX>npm install -g osmtogeojson
npm ERR! network getaddrinfo ENOTFOUND
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settin
gs.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network ‘proxy’ config is set properly. See: ‘npm help config’

npm ERR! System Windows_NT 6.1.7601
npm ERR! command “C:\Program Files (x86)\nodejs\\node.exe” “C:\Program File
s (x86)\nodejs\node_modules\npm\bin\npm-cli.js” “install” “-g” “osmtogeojso
n”
npm ERR! cwd C:\Users\XXXXXXX
npm ERR! node -v v0.10.31
npm ERR! npm -v 1.4.23
npm ERR! syscall getaddrinfo
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\Users\XXXXXXX\npm-debug.log
npm ERR! not ok code 0

Não tenho certeza se tem a ver, mas execute o Prompt de Comando com privilégios de administrador. Compartilhe conosco o conteúdo de C:\Users\XXXXXXX\npm-debug.log.

Você pode preferir colocar aquele arquivo num pastebin, se ele for logo demais. Ou dentro de tag code.

UbberM, mas você precisa de proxy para navegar no seu computador?
Se for isso, digita no prompt:

npm config set proxy http://endereco-do-proxy:porta

Log do erro:

0 info it worked if it ends with ok
1 verbose cli [ ‘C:\Program Files (x86)\nodejs\\node.exe’,
1 verbose cli ‘C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js’,
1 verbose cli ‘install’,
1 verbose cli ‘-g’,
1 verbose cli ‘osmtogeojson’ ]
2 info using npm@1.4.23
3 info using node@v0.10.31
4 verbose node symlink C:\Program Files (x86)\nodejs\node.exe
5 verbose cache add [ ‘osmtogeojson’, null ]
6 verbose cache add name=undefined spec=“osmtogeojson” args=[“osmtogeojson”,null]
7 verbose parsed url { protocol: null,
7 verbose parsed url slashes: null,
7 verbose parsed url auth: null,
7 verbose parsed url host: null,
7 verbose parsed url port: null,
7 verbose parsed url hostname: null,
7 verbose parsed url hash: null,
7 verbose parsed url search: null,
7 verbose parsed url query: null,
7 verbose parsed url pathname: ‘osmtogeojson’,
7 verbose parsed url path: ‘osmtogeojson’,
7 verbose parsed url href: ‘osmtogeojson’ }
8 silly lockFile eb0a52d9-osmtogeojson osmtogeojson
9 verbose lock osmtogeojson C:\Users\XXXXXX\AppData\Roaming\npm-cache\eb0a52d9-osmtogeojson.lock
10 silly lockFile eb0a52d9-osmtogeojson osmtogeojson
11 silly lockFile eb0a52d9-osmtogeojson osmtogeojson
12 verbose addNamed [ ‘osmtogeojson’, ‘’ ]
13 verbose addNamed [ null, ‘’ ]
14 silly lockFile 2b04ed7d-osmtogeojson osmtogeojson@
15 verbose lock osmtogeojson@ C:\Users\XXXXXX\AppData\Roaming\npm-cache\2b04ed7d-osmtogeojson.lock
16 silly addNameRange { name: ‘osmtogeojson’, range: '
’, hasData: false }
17 verbose request where is /osmtogeojson
18 verbose request registry https://registry.npmjs.org/
19 verbose request id 0fb7001c084d5769
20 verbose url raw /osmtogeojson
21 verbose url resolving [ ‘https://registry.npmjs.org/’, ‘./osmtogeojson’ ]
22 verbose url resolved https://registry.npmjs.org/osmtogeojson
23 verbose request where is https://registry.npmjs.org/osmtogeojson
24 info trying registry request attempt 1 at 14:04:57
25 http GET https://registry.npmjs.org/osmtogeojson
26 info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND
27 info trying registry request attempt 2 at 14:05:07
28 http GET https://registry.npmjs.org/osmtogeojson
29 info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND
30 info trying registry request attempt 3 at 14:06:07
31 http GET https://registry.npmjs.org/osmtogeojson
32 silly lockFile 2b04ed7d-osmtogeojson osmtogeojson@
33 silly lockFile 2b04ed7d-osmtogeojson osmtogeojson@
34 error network getaddrinfo ENOTFOUND
34 error network This is most likely not a problem with npm itself
34 error network and is related to network connectivity.
34 error network In most cases you are behind a proxy or have bad network settings.
34 error network
34 error network If you are behind a proxy, please make sure that the
34 error network ‘proxy’ config is set properly. See: ‘npm help config’
35 error System Windows_NT 6.1.7601
36 error command “C:\Program Files (x86)\nodejs\\node.exe” “C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js” “install” “-g” “osmtogeojson”
37 error cwd C:\Temp
38 error node -v v0.10.31
39 error npm -v 1.4.23
40 error syscall getaddrinfo
41 error code ENOTFOUND
42 error errno ENOTFOUND
43 verbose exit [ 1, true ]

Hum… é HTTPS
Então roda isso também:

npm config set https-proxy http://endereco-do-proxy:porta

Se o problema for proxy isso resolve.

Qualquer coisa, conecta no IRC http://webchat.oftc.net/?channels=osm-br que fica mais rápido pra gente arrumar isso.

Configurei o proxy e funcionou mas agora tenho este erro.

FATAL ERROR: JS Allocation failed - process out of memory

Como aloco mais memoria ? Tenho 16 de RAM

Tenta isso:
node --max_old_space_size=8192 X arquivo.osm > saida.geojson

X aqui é onde está instalado o osmtogeojson
Deve ser C:\Users\seuusuario\AppData\Roaming\npm\node_modules\osmtogeojson provavelmente

naoliv, se você colocar suas linhas de comando em tags code, esta página ficará melhor apresentada.

C:\Temp> node --max_old_space_size=8192 C:\Users\XXXXX\AppData\Roaming\npm\osm
togeojson sp.osm > sp.geojson

C:\Users\XXXXX\AppData\Roaming\npm\osmtogeojson:2
basedir=dirname "$0"
^
SyntaxError: Unexpected token ILLEGAL
at Module._compile (module.js:439:25)
at Object.Module._extensions…js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Isso é quando o caminho está errado
É pra ter mais coisa no caminho que você está utilizando, como esse:

C:\Users\seuusuario\AppData\Roaming\npm\node_modules\osmtogeojson

E aparece no IRC que fica melhor e mais rápido :slight_smile:

Eu tinha achado estranho, mas segundo o que está escrito por naoliv, haveria um espaço para o nome do arquivo:

node --max_old_space_size=8192 C:\Users\XXXXX\AppData\Roaming\npm osmtogeojson sp.osm > sp.geojson

Update: li errado.

Outra coisa: XXXXX é realmente o nome do usuário?

naoliv, a desvantagem de resolver as coisas por IRC é que a solução não fica automaticamente registrada.

naoliv , nao tenho como entrar no Mirc.

Alexandre XXXXX nao e o nome do usuario.

Tentei novamente, em qual pasta eu devo dar esse comando de node ?

C:\Temp> node --max_old_space_size=8192 C:\Users\XXXXX\AppData\Roaming\npm\osm
togeojson berlin-latest.osm > berlin.geojson

C:\Users\XXXXX\AppData\Roaming\npm\osmtogeojson:2
basedir=dirname "$0"
^
SyntaxError: Unexpected token ILLEGAL
at Module._compile (module.js:439:25)
at Object.Module._extensions…js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Se você instalou com o “npm install -g osmtogeojson” então o caminho realmente vai ser C:\Users\seuusuario\AppData\Roaming\npm\node_modules\osmtogeojson
O seu está diferente: C:\Users\X\AppData\Roaming\npm\osmtogeojson

O node você pode executar em qualquer lugar. É o caminho que está errado (faltando node_modules ali no meio)

naoliv tira o meu user do seu post por favor