[Talk-ro] Cum fac sa pot sa deschid osm.pbf in Qgis ?

Ciprian Talaba cipriantalaba at gmail.com
Fri Nov 2 07:44:37 GMT 2012


Total de acord cu Cristian, PostgreSQL+PostGIS este ceea ce ai nevoie.
Din ce stiu osm2pgsql are suport de PBF (va fi nevoie sa iei probabil
o versiune mai actuala si sa o compilezi din surse), asa ca nu e
necesara conversia la OSM.

Cateva cereri pe care le foloseam eu:

1. Total km de strazi

SELECT sum(ST_Length(way))/1000 as km_roads from planet_osm_line WHERE
highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary',
'unclassified', 'residential', 'service');

2. Total km de poteci, alei

SELECT sum(ST_Length(way))/1000 as km_paths from planet_osm_line WHERE
highway IN ('path', 'pedestrian', 'footway');

3. Total km piste biciclete

SELECT sum(ST_Length(way))/1000 as km_cycle from planet_osm_line WHERE
highway IN ('cycleway');

4. Numar total orase+sate

SELECT COUNT(*) as cities FROM planet_osm_point WHERE place IS NOT NULL;

--Ciprian T.

2012/11/2 Cristian Draghici <cristian.draghici la gmail.com>:
> Eu n-aș folosi QGIS pentru așa ceva - din experiența mea dacă încarci
> cantități mari de date devine aproape inutilizabil.
>
> Eu folosesc pbf2osm (acum inlocuit de osmconvert) pentru conversie .pbf la
> .osm.
> Și ulterior osm2pgsql pentru încărcarea OSM-ului în Postgresql/Postgis.
>
> QGIS e foarte bun la vizualizări - poți încărca o parte dintr-un layer
> Postgis filtrând pe baza de bounding box (ca atare folosind indecșii
> spațiali din DB).
>
>
> Postgis este mult mai nimerit pentru statistici, spre exemplu:
>
> 1/ Lungime drumuri primary si trunk in Romania:
>
> roclc=# select sum(st_length(st_transform(way, 31700)))/1000 as km from
> planet_osm_line where highway in ('trunk', 'primary');
>         km
> ------------------
>  17000.2828227466
> (1 row)
>
> Time: 458.829 ms
>
> 2/ Kilometri asfaltați in sectorul 1 București:
>
> roclc=# select sum(st_length(st_transform(l.way, 31700)))/1000 as km from
> planet_osm_line l, planet_osm_polygon p where l.highway in ('trunk',
> 'primary', 'secondary', 'tertiary', 'residential', 'service') and
> st_contains(p.way, l.way) and p.name='Sector 1' and p.way && l.way;
>         km
> ------------------
>  525.782711578516
> (1 row)
>
> 3/ Câte farmacii pe metru pătrat sunt în București:
>
> roclc=# select st_area(st_transform(way, 31700)) / 1000000 as suprafață from
> planet_osm_polygon where name = 'Municipiul București';
>     suprafață
> ------------------
>  236.567216236954
> (1 row)
>
> roclc=# select count(*) from planet_osm_point p, planet_osm_polygon s where
> s.name = 'Municipiul București' and s.way && p.way and st_contains(s.way,
> p.way) and p.amenity = 'pharmacy';
>  count
> -------
>    218
> (1 row)
>
> Time: 615.201 ms
> roclc=# select 218 / 236.567216236954 as fkm2;
>           fkm2
> ------------------------
>  0.92151399279959220279
> (1 row)
>
> Time: 0.443 ms
>
>
> Salutări,
> --
> Cristi
> http://blog.loudhush.ro
>
> 2012/11/2 Badita Florin <baditaflorin la gmail.com>
>>
>> http://osm.stilpu.org/daily-odbl/ functioneaza iarasi perfect, iar pentru
>> acesta doresc sa le multumesc celor care se ocupa de el, si ofera acest
>> lucru frumos.
>>
>> Dar eu am o intrebare mai de noob. Cum fac din osm.pbf un format
>> acceptabil ca sa il incerc in Qgis, sa pot sa ma joc cu datele.
>>
>> As folosi direct extrasul shp de la geofabrik, dar acela nu este complet,
>> lipsesc POi-uri, iar din mailul pe care l-am dat au zis ca pt extrasul
>> complet trebuie sa platesc.
>>
>> Ceea ce nu ma avantajeaza, eu vreau doar sa ma joc cu datele, sa mai fac
>> niste statistici, cati kilometrii au fost adaugati intr-o luna de zile,
>> niste reprezentari vizuale,etc :)
>>
>> _______________________________________________
>> Talk-ro mailing list
>> Talk-ro la openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-ro
>>
>
>
>
>
> _______________________________________________
> Talk-ro mailing list
> Talk-ro la openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-ro
>



More information about the Talk-ro mailing list