https://github.com/muka/osmparser
PHP classes to parse OpenStreetMap .osm files
https://github.com/muka/osmparser
Last synced: about 2 months ago
JSON representation
PHP classes to parse OpenStreetMap .osm files
- Host: GitHub
- URL: https://github.com/muka/osmparser
- Owner: muka
- License: mit
- Created: 2013-10-18T14:25:21.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-11-08T11:50:58.000Z (over 11 years ago)
- Last Synced: 2025-02-05T04:49:32.511Z (4 months ago)
- Language: PHP
- Size: 273 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
OsmParser
=========PHP classes to parse OpenStreetMap .osm files
This library is supposed to run on CLI (as it could require long time to run)
Install
------
In your composer.json add something like
```
"repositories": [
{
"type": "vcs",
"url": "https://github.com/muka/XmlStreamer.git"
},
{
"type": "vcs",
"url": "https://github.com/muka/OsmParser"
}
],
"require": {... other require ...
"muka/osmparser": "dev-master as 1.0"
}```
and `composer update` thenUsage
------```php
use muka\OsmParser\OsmParser;
use muka\OsmParser\Event\OsmParserItemEvent;$path = realpath("./tmp/trentino-alto-adige.osm.bz2");
$parser = new OsmParser($path);// Register to event `osm_parser.item`
$parser->getDispatcher()->addListener("osm_parser.item", function($e) {
var_dump($e->getType());
var_dump($e->getItem());
});/**
* Event can be either one of the parent nodes available in the .osm xml
* - osm_parser.item.node
* - osm_parser.item.relation
* - osm_parser.item.way
* - osm_parser.item.bounds
*/
$parser->getDispatcher()->addListener("osm_parser.item.node", function($e) {
$node = $e->getItem();
printf("Node id `%s` by %s is at [%s,%s]\n", $node->meta['id'], $node->meta['user'], $node->meta['lat'], $node->meta['lon']);
});$parser->parse();
```