#1 Sat 30 June 2012 15:48
- Christian Bleau
- Participant occasionnel
- Date d'inscription: 10 Jun 2012
- Messages: 22
Coordonnées Lon Lat
Bonjour,
Il y a un point sur lequel, je n'ai manifestement pas compris.
sur l'exemple suivant: http://pofableau.com/OpenLayers/ok2_tes … ouche.html
je souhaite à faire apparaitre les coordonnées selon une projection type WGS 1984
soit en décimale soit en degré minute et seconde.
Comme vous pouvez le constater ce n'est pas le cas ........
Auriez vous une piste de réflexion à me suggérer?
Merci.
Christian
Hors ligne
#2 Sun 01 July 2012 12:16
Re: Coordonnées Lon Lat
Bonjour,
Pour le fait d'afficher au survol la bonne unité, voir l'option displayProjection, illustrée par exemple dans le code http://wiki.openstreetmap.org/wiki/Open … ck_example
Pour le formatage en degrés minutes secondes (DMS), voir à la fois http://dev.openlayers.org/docs/files/Op … ttedLonLat et le pied de page de http://www.peterrobins.co.uk/it/olchang … ction.html
Vous avez tout, juste à analyser un peu les exemples fournis maintenant
Cordialement
ThomasG
Hors ligne
#3 Sun 01 July 2012 20:04
- Christian Bleau
- Participant occasionnel
- Date d'inscription: 10 Jun 2012
- Messages: 22
Re: Coordonnées Lon Lat
Tout ceci fonctionne parfaitement et je vous remercie pour ces renseignements.
Cordialement.
Christian
en résumé pour ceux qui seraient intéressés par les détails:
la projection est évoquée dans l'option de la couche de base:
map = new OpenLayers.Map("basicMap",{displayProjection: new OpenLayers.Projection("EPSG:4326")});
le système DMS Degré Minutes Secondes s'obtient par l'intégration de la fonction suivante:
function formatLonlats(lonLat) {
var lat = lonLat.lat;
var long = lonLat.lon;
var ns = OpenLayers.Util.getFormattedLonLat(lat);
var ew = OpenLayers.Util.getFormattedLonLat(long,'lon');
return ns + ', ' + ew + ' (' + (Math.round(lat * 10000) / 10000) + ', ' + (Math.round(long * 10000) / 10000) + ')'; }
fonction appelée dans:
map.addControl(new OpenLayers.Control.MousePosition({formatOutput: formatLonlats}));
Hors ligne
#4 Thu 13 September 2012 11:30
- Christian Bleau
- Participant occasionnel
- Date d'inscription: 10 Jun 2012
- Messages: 22
Re: Coordonnées Lon Lat
Bonjour,
Sur l'exemple e test ici http://blo.pofableau.com/pluxml/OpenLayers/ign/ign.html
Je n'arrive pas à résoudre un problème lié aux projection utilisées.
En utilisant le script de mesure de distance, il s'avère que celles ci sont inexactes.
Les résultats sont supérieurs à la réalité.
Voici les projections appelées, sachant
Code:
Proj4js.defs["EPSG:3857"] = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"; function init() { map = new OpenLayers.Map("basicMap", { projection: "EPSG:3857", displayProjection: new OpenLayers.Projection("EPSG:4326") }); var ghyb = new OpenLayers.Layer.Google( "Google Hybride",{type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20} ); var options = { name: "Cartes IGN", url: "http://gpp3-wxs.ign.fr/xfwvg8nh6nsfww6mvoxu4lxa/wmts", layer: "GEOGRAPHICALGRIDSYSTEMS.MAPS", matrixSet: "PM", style: "normal", numZoomLevels: 20 }; var ign = new OpenLayers.Layer.WMTS(options); var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984 var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection var position = new OpenLayers.LonLat(2.534904,48.387558).transform( fromProjection, toProjection); var zoom = 18 ;
<script src="http://svn.osgeo.org/metacrs/proj4js/trunk/lib/proj4js-compressed.js"></script> etant appelé préalablement dans la page html
Auriez vous une piste?
Merci bien.
Dernière modification par Christian Bleau (Thu 13 September 2012 11:37)
Hors ligne
#5 Sat 15 September 2012 12:55
- Christian Bleau
- Participant occasionnel
- Date d'inscription: 10 Jun 2012
- Messages: 22
Re: Coordonnées Lon Lat
si cela peut servir avec l'option:
geodesic: true
le résultats sont plus proches de la réalité.
Hors ligne