« GeoJava » : différence entre les versions

De Lillois Fractale Wiki
Aller à la navigation Aller à la recherche
Contenu ajouté Contenu supprimé
Aucun résumé des modifications
Aucun résumé des modifications
 
(20 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :

 


== Intro ==
== Intro ==
Ligne 10 : Ligne 12 :
*les structures de données ne sont pas évidentes
*les structures de données ne sont pas évidentes
*Il faudrait pouvoir accéder à un bon niveau de détail sur n'importe quelle zone de la planète.
*Il faudrait pouvoir accéder à un bon niveau de détail sur n'importe quelle zone de la planète.
*la configuartion des multiples composants impliqués est lourde.





Ligne 19 : Ligne 21 :
Besides that, the specific productions of pge are
Besides that, the specific productions of pge are


*The directory with the key data'''/media/Shared/server.geo/'''
*The directory with the key data '''/media/Shared/server.geo/'''
*This wiki file ('''GeoJava''')
*This wiki file ('''GeoJava''')
*The script '''osmExtract'''
*The script '''osmExtract '''([[osmExtract_output|output example]])
*The osm extraction style file '''osm2pgsql.pge.style'''
*The osm extraction style file '''osm2pgsql.pge.style'''
*And the big part (java sources): the java project '''gwtApp/''''''CeMap''' (centered Map) available in eclipse.
*And the big part (java sources): the java project '''gwtApp/''''''CeMap''' ([[CeMap|CeMap]], centered Map) available in eclipse.


== Données à intégrer ==
== Données à intégrer ==


Voici ce qui serait utile:
Voici ce qui serait utile (le fichier style est à adapter pour ces limites):


*Contour des pays
*Contour des pays
Ligne 33 : Ligne 35 :
*Nom des villes
*Nom des villes
*Nom des rues
*Nom des rues
*''Plus ?!? ... plus tard''
*''Plus ?!? ... plus tard.''

 






Ligne 48 : Ligne 54 :


Voir aussi la commande '''osmupdate''' et les autres commandes osm''XXX''.
Voir aussi la commande '''osmupdate''' et les autres commandes osm''XXX''.
<pre>cd /media/Shared/server.geo&nbsp;; osmium fileinfo planet-*.osm.pbf</pre>
<pre>osmium fileinfo /media/Shared/server.geo/planet-*.osm.pbf</pre>


Les données d'SOM sont considérables en taille (voir OpenStreetMap stats report run at 2017-05-21 at&nbsp;[http://www.openstreetmap.org/stats/data_stats.html http://www.openstreetmap.org/stats/data_stats.html])


{| cellpadding="2"
|-
|
Number of uploaded GPS points

|
5696 M

|-
|
Number of nodes

|
3894 M

|-
|
Number of ways

|
412 M

|-
|
Number of relations

|
4995 K

|}

The number of ways is the heaviest regarding OSM conversion.

The tag list and comments is on&nbsp;[http://wiki.openstreetmap.org/wiki/Map_Features http://wiki.openstreetmap.org/wiki/Map_Features]&nbsp;.

Tag related stats are in https://taginfo.openstreetmap.org/keys .


== Base de données&nbsp;: PostGres ==
== Base de données&nbsp;: PostGres ==
Ligne 56 : Ligne 99 :
La commande pour utiliser postgres interactivement est '''psql''' (installé&nbsp;normalement en standard au sein d'ubuntu - otherwise&nbsp;sudo apt-get install postgresql).
La commande pour utiliser postgres interactivement est '''psql''' (installé&nbsp;normalement en standard au sein d'ubuntu - otherwise&nbsp;sudo apt-get install postgresql).


Il faut définir (administration) un utilisateur/rôle pge.&nbsp;
Il faut définir (administration) un utilisateur/rôle pge.

Pour donner l'accès à MMM (192.168.100.66) il est nécessaire d'ajouter la ligne:
<pre> host all all 192.168.100.66/32 md5</pre>

.. &nbsp;au fichier&nbsp;/etc/postgresql/9.5/main/pg_hba.conf, mais aussi d'ajouter
<pre>listen_addresses = '*'</pre>

.. &nbsp;au fichier&nbsp;/etc/postgresql/9.5/main/postgresql.conf . En outre l'emplacement des données peut être adapté&nbsp;aux disques disponibles:
<pre># data_directory = '/var/lib/postgresql/9.5/main' # use data in another directory
data_directory = '/media/Server/postgresql/9.5/main' # (PGE)
</pre>

Ce genre de changement requiert un restart du serveur postgres:
<pre>sudo service postgresql restart</pre>


Il faut créer la base de données gis:&nbsp;
Il faut créer la base de données gis:&nbsp;
<pre>sudo -u postgres psql
<pre>sudo -u postgres psql
CREATE USER pge SUPERUSER&nbsp;;
CREATE USER pge SUPERUSER;
ALTER USER pge WITH PASSWORD 'XXXXXX';
CREATE DATABASE gis&nbsp;;</pre>
CREATE DATABASE gis;</pre>


Il faut aussi que le&nbsp;package postgis soit installé (sudo apt install postgis).
Il faut aussi que le&nbsp;package postgis soit installé (sudo apt install postgis).
Ligne 96 : Ligne 154 :
SHOW maintenance_work_mem;</pre>
SHOW maintenance_work_mem;</pre>


It may be necessary to&nbsp;: sudo service postgresql restart .
It may be necessary to&nbsp;restart &nbsp;the postgresql service.


Pour un accès à partir d'autres machines:&nbsp;
Pour un accès à partir d'autres machines:&nbsp;
Ligne 118 : Ligne 176 :


L'exécution de cette commande peut prendre des heures...
L'exécution de cette commande peut prendre des heures...

&nbsp;







== Checking data content with qgis ==
== Checking data content with qgis ==


C'est une exécutable disponible dans linux (sudo apt install qgis).
Aec '''qgis''', on dispose d'un exécutable interactif disponible sous linux. L'installation est obtenue avec (sudo commands):

*add-apt-repository ppa:ubuntugis/ubuntugis-unstable
*apt install qgis&nbsp;python-qgis qgis-provider-grass libgdal-dev

La doc en ligne de qgis est [http://www.qgis.org/en/docs/index.html ici].

La version sous Ubuntu n'est probablement pas la plus récente.

Le programme est très lent lorsqu'un layer est chargé (par exemple 'planet_osm_line').


Il permet notamment de lire une base postgis, et donc de vérifer les données préalablement exportées avec osmExtract.
Il permet notamment de lire une base postgis, et donc de vérifer les données préalablement exportées avec osmExtract.

Paramètres d'accès:

*Name: gis
*Service:
*Host: MMU
*Port: 5432
*SSL mode: disable
*Username: pge
*Password: XXXXXXXX


== Java access to postgis (gis data in postgres DB) ==
== Java access to postgis (gis data in postgres DB) ==


See https://postgis.net/docs/
See [https://postgis.net/docs/ https://postgis.net/docs/]


Java clients can access PostGIS "geometry" objects in the PostgreSQL database either directly as text representations or using the JDBC extension objects bundled with PostGIS. In order to use the extension objects, the "'''postgis.jar'''" file must be in your CLASSPATH along with the "'''postgresql.jar'''" JDBC driver package.
Java clients can access PostGIS "geometry" objects in the PostgreSQL database either directly as text representations or using the JDBC extension objects bundled with PostGIS. In order to use the extension objects, the "'''postgis.jar'''" file must be in your CLASSPATH along with the "'''postgresql.jar'''" JDBC driver package.

Dernière version du 29 mai 2017 à 11:59

 

Intro

PG souhaite développer une application java manipulant des données géographiques planétaires.

Ce n'est pas une mince affaire car:

  • les données sont très volumineuses
  • il est indispensable de mettre en place une architecture client serveur
  • les structures de données ne sont pas évidentes
  • Il faudrait pouvoir accéder à un bon niveau de détail sur n'importe quelle zone de la planète.
  • la configuartion des multiples composants impliqués est lourde.


Projects key components

Various system components and web-downloadable data, listed below.

Besides that, the specific productions of pge are

  • The directory with the key data /media/Shared/server.geo/
  • This wiki file (GeoJava)
  • The script osmExtract (output example)
  • The osm extraction style file osm2pgsql.pge.style
  • And the big part (java sources): the java project gwtApp/'CeMap' (CeMap, centered Map) available in eclipse.

Données à intégrer

Voici ce qui serait utile (le fichier style est à adapter pour ces limites):

  • Contour des pays
  • Contour des océans et étendues d'eau
  • Nom des villes
  • Nom des rues
  • Plus ?!? ... plus tard.

 



Matière première: les données OSM

Le fichier global dont tout sera extrait est planet-170306.osm.pbf (170306 pour YYMMDD).

Le format PBF est le moins encombrant.

Le fichier est placé dans /media/Shared/server.geo

Ce fichier assez volumineux peut être téléchargé sur le site d'OpenStreeMap (OSM).

Voir aussi la commande osmupdate et les autres commandes osmXXX.

osmium fileinfo /media/Shared/server.geo/planet-*.osm.pbf

Les données d'SOM sont considérables en taille (voir OpenStreetMap stats report run at 2017-05-21 at http://www.openstreetmap.org/stats/data_stats.html)

Number of uploaded GPS points

5696 M

Number of nodes

3894 M

Number of ways

412 M

Number of relations

4995 K

The number of ways is the heaviest regarding OSM conversion.

The tag list and comments is on http://wiki.openstreetmap.org/wiki/Map_Features .

Tag related stats are in https://taginfo.openstreetmap.org/keys .

Base de données : PostGres

La commande pour utiliser postgres interactivement est psql (installé normalement en standard au sein d'ubuntu - otherwise sudo apt-get install postgresql).

Il faut définir (administration) un utilisateur/rôle pge.

Pour donner l'accès à MMM (192.168.100.66) il est nécessaire d'ajouter la ligne:

 host    all             all             192.168.100.66/32       md5

..  au fichier /etc/postgresql/9.5/main/pg_hba.conf, mais aussi d'ajouter

listen_addresses = '*'

..  au fichier /etc/postgresql/9.5/main/postgresql.conf . En outre l'emplacement des données peut être adapté aux disques disponibles:

# data_directory = '/var/lib/postgresql/9.5/main'        # use data in another directory
data_directory = '/media/Server/postgresql/9.5/main'     # (PGE) 

Ce genre de changement requiert un restart du serveur postgres:

sudo service postgresql restart

Il faut créer la base de données gis: 

sudo -u postgres psql
CREATE USER pge SUPERUSER;
ALTER USER pge WITH PASSWORD 'XXXXXX';
CREATE DATABASE gis;

Il faut aussi que le package postgis soit installé (sudo apt install postgis).

Au sein de postgres (en tant que pge) il faut installer les extensions HSTORE et POSTGIS:

psql -d gis
LOAD EXTENSION HSTORE ;
LOAD EXTENSION POSTGIS ;

And possibly more (see www.postgis.net/install):

-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D 
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

Il peut en outre être utile de vérifier la base de données gis dans postgres avec l'outil pgadmin3 (Si nécessaire : sudo apt install pgadmin3).

Optimisation des performances:

ALTER SYSTEM SET work_mem TO "128MB";
ALTER SYSTEM SET maintenance_work_mem TO "512MB";
SHOW work_mem;
SHOW maintenance_work_mem;

It may be necessary to restart  the postgresql service.

Pour un accès à partir d'autres machines: 

psql --version
psql -h MMU -U pge -d gis

Chargement des données OSM dans PostGres

sudo apt-get install osm2pgsql # installation du package de conversion ad hoc

l'exécutable est /usr/bin/osm2pgsql

ce qui est extrait vers postgres est défini dans un fichier de configuration:

  • version par défaut /usr/share/osm2pgsql/default.style
  • version pour les besoins de pge : /media/Shared/osm2pgsql.pge.style (fichier précieux à adapter selon besoins)
  • use this command to compare them :
diff /usr/share/osm2pgsql/default.style /media/Shared/osm2pgsql.pge.style

la commande à exécuter est (osm2pgsql avec tous les arguments ad hoc) dans le script osmExtract.

L'exécution de cette commande peut prendre des heures...

 



Checking data content with qgis

Aec qgis, on dispose d'un exécutable interactif disponible sous linux. L'installation est obtenue avec (sudo commands):

  • add-apt-repository ppa:ubuntugis/ubuntugis-unstable
  • apt install qgis python-qgis qgis-provider-grass libgdal-dev

La doc en ligne de qgis est ici.

La version sous Ubuntu n'est probablement pas la plus récente.

Le programme est très lent lorsqu'un layer est chargé (par exemple 'planet_osm_line').

Il permet notamment de lire une base postgis, et donc de vérifer les données préalablement exportées avec osmExtract.

Paramètres d'accès:

  • Name: gis
  • Service:
  • Host: MMU
  • Port: 5432
  • SSL mode: disable
  • Username: pge
  • Password: XXXXXXXX

Java access to postgis (gis data in postgres DB)

See https://postgis.net/docs/

Java clients can access PostGIS "geometry" objects in the PostgreSQL database either directly as text representations or using the JDBC extension objects bundled with PostGIS. In order to use the extension objects, the "postgis.jar" file must be in your CLASSPATH along with the "postgresql.jar" JDBC driver package.

Ces deux jars ddoivent être copiés dans $jnb/lib.