#1 Thu 16 July 2020 18:09
- sylvainSIG
- Participant assidu
- Lieu: Moissac
- Date d'inscription: 29 Nov 2018
- Messages: 265
Récupération de données Long/Lat et pb de projection
Bonjour/soir
Par rapport à mon post précédent, j'ai réussi à récupérer les données long et lat.
J'arrive via une requête PostGIS à intégrer une chaine de caractère qui ressemble à une entité géométrique, mais dans une colonne formatée "chaine de caractère".
Mais un problème subsiste, la projection.
Il semble qu'il n'y ait pas de projection associée (comme semble montrer le message ci-dessous), mais je ne sais pas du tout comment lui attribuer. La méthode st_srid ne fonctionne pas.
Code:
Warning: pg_query(): Query failed: ERROR: Geometry SRID (0) does not match column SRID (3857) in C:\ms4w\Apache\htdocs\calvaires.php on line 32
Autre chose que je ne saisis pas, c'est la raison pour laquelle quand je clique sur un point de la carte, ce sont des données en epsg:4326, alors que depuis le début je taffe avec du 3857.
Voila le code que j'utilise :
Code:
map.on('click', function(evt){ var coords = ol.proj.toLonLat(evt.coordinate); var lat = coords[1]; var lon = coords[0]; // coords is a div in HTML below the map to display document.getElementById('cx').innerHTML = lon; document.getElementById('cy').innerHTML = lat; });
Est ce que des gens auraient des idées ?
Merci pour votre aide,
Sylvain
Dernière modification par sylvainSIG (Thu 16 July 2020 18:11)
Hors ligne
#2 Thu 16 July 2020 18:33
- sylvainSIG
- Participant assidu
- Lieu: Moissac
- Date d'inscription: 29 Nov 2018
- Messages: 265
Re: Récupération de données Long/Lat et pb de projection
J'ai trouvé la solution.
Dans ce cas là, il s'agit d'appliquer successivement st_transform, st_setsrid et st_point
Code:
$req="INSERT INTO user_import(contributeur, description, observations, date, typbien, confession, etat, geom) VALUES ('".$contributeur."', '".$description."', '".$observations."', '".$date."', '".$typbien."', '".$confession."', '".$etat."', ST_Transform(ST_SetSRID(ST_Point('".$x."', '".$y."'),4326),3857))"; $result=pg_query($conn, $req);
J'espère que ce post profitera à d'autres.
Aux modérateurs, si qqun pouvait retirer mon message en doublon...
Hors ligne