{"id":19850013,"url":"https://github.com/neudinger/osmtogeojson","last_synced_at":"2026-05-08T15:17:09.715Z","repository":{"id":118677725,"uuid":"219893120","full_name":"neudinger/osmtogeojson","owner":"neudinger","description":"Convert osm xml to osm GeoJson Dlang project","archived":false,"fork":false,"pushed_at":"2019-11-19T22:21:40.000Z","size":174,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-17T01:44:14.557Z","etag":null,"topics":["docker","json","linux","osm","osm-geojson","parser","split","xml"],"latest_commit_sha":null,"homepage":"https://neudinger.github.io/osmtogeojson/","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neudinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-06T02:17:16.000Z","updated_at":"2020-02-20T16:26:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"3111bb36-194e-46fa-8e80-c4e9db7f678e","html_url":"https://github.com/neudinger/osmtogeojson","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/neudinger/osmtogeojson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neudinger%2Fosmtogeojson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neudinger%2Fosmtogeojson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neudinger%2Fosmtogeojson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neudinger%2Fosmtogeojson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neudinger","download_url":"https://codeload.github.com/neudinger/osmtogeojson/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neudinger%2Fosmtogeojson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32785622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","json","linux","osm","osm-geojson","parser","split","xml"],"created_at":"2024-11-12T13:23:58.156Z","updated_at":"2026-05-08T15:17:09.697Z","avatar_url":"https://github.com/neudinger.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OSM to GeoJson\n\nConvert osm xml to osm GeoJson\n\n[![GitHub license](https://img.shields.io/badge/license-EUPL-blue.svg)](https://raw.githubusercontent.com/herotc/hero-rotation/master/LICENSE)\n\n## Getting Started\n\n* Download data\nor\n* Use example\n\n### Data\n\n1. Download [osm.bz2](http://download.geofabrik.de/) file\n2. Split file between 1gb and 2gb chunk with xml_split from [xml-twig-tools](https://packages.ubuntu.com/xenial/all/xml-twig-tools/filelist) or other tools _For better performance_\n\nEx:\n\n```sh\nxml_split -s 1gb ile-de-france-latest.osm\n```\n\n### Prerequisites\n\nDownload this repository\n\n#### Local Compiler\n\nYou need to have dub installed on your computer.\n\nInstallation of a compiler sometimes is cumbersome.\nThis Docker image should take this pain and allow you to easily switch between Versions of the same compiler and even different compilers.\n\nIn case a native installation is required, `curl -fsS https://dlang.org/install.sh | bash -s dmd` could be used.\n\n* windows\n* linux\n* macos\n\n#### Docker\n\n1. Docker must be installed on your computer\n\n[Docker dub/dmd](https://hub.docker.com/r/neudinger/dubdmd)\n\nThen execute:\n**linux**\n\n```sh\ndocker build . -t dubdmd:latest\n```\n\n**OR**\n\n```sh\ndocker pull neudinger/dubdmd:latest\n```\n\n**OR**\n\n```sh\ndocker build --rm . --build-arg buildtypes=debug -t dubdmd:latest\n```\n\n~~windows and mac~~\u003c/br\u003e\nuse linux or find by your self how tu use docker\u003c/br\u003e\n[Mac](https://docs.docker.com/docker-for-mac/install/)\u003c/br\u003e\n[Windows](https://docs.docker.com/docker-for-windows/)\n\n\n## Running\n\n### Local\n\n```sh\n./osmtogeojson -i ./examples/ex.xml\n```\n\n**OR**\n\n```sh\n./osmtogeojson -i ./examples/ile-de-france-latest-01.osm -o ile-de-france-latest-geo.json\n```\n\n**OR**\n\n```sh\n./osmtogeojson -h\n```\n\n### Docker\n\n```sh\ndocker run --rm -ti -v $(pwd):/home/src dubdmd\n```\n\n## Example\n\n```xml\n\u003c?xml version='1.0' encoding='UTF-8'?\u003e\n\u003cxml_split:root xmlns:xml_split=\"http://xmltwig.com/xml_split\"\u003e\n    \u003cbounds minlat=\"48.11918\" minlon=\"1.445097\" maxlat=\"49.24271\" maxlon=\"3.560409\"/\u003e\n    \u003cnode id=\"199040487\" lat=\"48.7444381\" lon=\"2.2220969\" version=\"7\" timestamp=\"2018-11-10T19:04:27Z\" changeset=\"0\"\u003e\n        \u003ctag k=\"addr:city\" v=\"Igny\"/\u003e\n        \u003ctag k=\"addr:street\" v=\"Route Nationale 444\"/\u003e\n        \u003ctag k=\"amenity\" v=\"fuel\"/\u003e\n        \u003ctag k=\"compressed_air\" v=\"yes\"/\u003e\n        \u003ctag k=\"fuel:diesel\" v=\"yes\"/\u003e\n        \u003ctag k=\"fuel:e10\" v=\"yes\"/\u003e\n        \u003ctag k=\"is_in\" v=\"Igny\"/\u003e\n        \u003ctag k=\"name\" v=\"BP\"/\u003e\n        \u003ctag k=\"opening_hours\" v=\"24/7\"/\u003e\n        \u003ctag k=\"operator\" v=\"BP\"/\u003e\n        \u003ctag k=\"ref:FR:prix-carburants\" v=\"91430003\"/\u003e\n        \u003ctag k=\"shop\" v=\"convenience;gas\"/\u003e\n        \u003ctag k=\"source\" v=\"Ministère de l\u0026#39;Economie, de l\u0026#39;Industrie et du Numérique - 08/04/2018\"/\u003e\n        \u003ctag k=\"toilets\" v=\"yes\"/\u003e\n    \u003c/node\u003e\n\u003c/xml_split:root\u003e\n```\n\n**TO**\n\n```json\n{\n    \"geometry\": {\n        \"coordinates\": [\n            2.22209689999999993,\n            48.7444381000000035\n        ],\n        \"type\": \"Point\"\n    },\n    \"id\": \"199040487\",\n    \"meta\": {\n        \"changeset\": \"0\",\n        \"id\": \"199040487\",\n        \"lat\": \"48.7444381\",\n        \"lon\": \"2.2220969\",\n        \"timestamp\": \"2018-11-10T19:04:27Z\",\n        \"type\": \"node\",\n        \"version\": \"7\"\n    },\n    \"properties\": {\n        \"addr:city\": \"Igny\",\n        \"addr:street\": \"Route Nationale 444\",\n        \"amenity\": \"fuel\",\n        \"compressed_air\": \"yes\",\n        \"fuel:diesel\": \"yes\",\n        \"fuel:e10\": \"yes\",\n        \"is_in\": \"Igny\",\n        \"name\": \"BP\",\n        \"opening_hours\": \"24\\/7\",\n        \"operator\": \"BP\",\n        \"ref:FR:prix-carburants\": \"91430003\",\n        \"shop\": \"convenience;gas\",\n        \"source\": \"Ministère de l'Economie, de l'Industrie et du Numérique - 08\\/04\\/2018\",\n        \"toilets\": \"yes\"\n    },\n    \"type\": \"Feature\"\n}\n```\n\n## Limitation\n\nlittle bit slow if file \u003e 2GB\n\n## Authors\n\n* **Barre Kevin** - *Initial work* - [neudinger](https://github.com/neudinger)\n\n## Code Style and Optimisation\n\nI use all garbage collector features.\n\nSo speed and memory allocation are not optimized.\n\n## License\n\nThis project is licensed under the European Union Public License 1.2 see the :eu: [eupl-1.2](https://choosealicense.com/licenses/eupl-1.2/) file for details.\u003c/br\u003e\n[European Union Public Licence](https://eupl.eu/)\u003c/br\u003e\n[:eu: Official EUPL website](https://joinup.ec.europa.eu/collection/eupl/eupl-text-11-12)\n\n## Future work\n\n* [ ] Str2Array \"convenience;gas\" :arrow_right: [\"convenience\", \"gas\"]\n* [ ] Str2Double \"48.7444381\" :arrow_right: 48.7444381\n* [ ] Str2Bool \"yes\" :arrow_right: True\n* [ ] Str2Int \"91430003\" :arrow_right: 91430003\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneudinger%2Fosmtogeojson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneudinger%2Fosmtogeojson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneudinger%2Fosmtogeojson/lists"}