#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


