[Francophone] Transform et OpenLayer

Yves Jacolin yjacolin at free.fr
Tue Dec 27 11:01:52 EST 2011


Bonjour Pierre,

Ton code pour la reprojection est faux. Il manque une parenthèse fermante et 
tu passes directement EPSG:2154 dans la méthode alors qu'elle demande un objet 
projection. Au pire tu aurais pu mettre une string ("EPSG:2154") mais je ne 
pense que cela aurait marché.

var latlon = new OpenLayers.Point(775133.95,6907235.95);
var proj = new OpenLayers.Projection("EPSG:2154");
var proj2 = new OpenLayers.Projection("EPSG:900913");
markers.addMarker(
	new OpenLayers.Marker(
		OpenLayers.Projection.transform(
			latlon,
			proj,
			proj2
		),
		icon2
	)
);

Je te conseille d'utiliser firebug pour débuguer. Il t'aurait prévenu qu'il 
manquait une parenthèse fermante.

Y.
Le jeudi 22 décembre 2011 16:18:20, Pierre Muckensturm a écrit :
> Aloha,
> Mon php génère le javascript de ma page web, notamment la partie
> "openlayer". ...
> <script type='text/javascript'>
>      var map;
>          function init() {
>        map = new OpenLayers.Map("map_id", {});
>        //map.addControl(new OpenLayers.Control.MousePosition());
>        var osm_layer = new OpenLayers.Layer.OSM();
>        map.addLayer(osm_layer);
> 
>        map.zoomToExtent(new
> OpenLayers.Bounds(446909,6316526,451696,6318943)); map.zoomToScale(12000);
> //              map.events.register("mousemove", map, function(e) {
> //                      var position = this.events.getMousePosition(e);
> //                      OpenLayers.Util.getElement("coords").innerHTML
> = position;
> //              });
>                var markers = new OpenLayers.Layer.Markers( "Markers" );
>                map.addLayer(markers);
>                var size = new OpenLayers.Size(125,26);
>                var size2 = new OpenLayers.Size(12,26);
>                var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
>                var offset2 = new OpenLayers.Pixel(0,0);
>                var icon = new
> OpenLayers.Icon('./galerie/logo-small.png',size,offset);
>                markers.addMarker(new OpenLayers.Marker(new
> OpenLayers.LonLat(448835,6318174),icon));
>                var halfIcon = icon.clone();
>                var icon2 = new
> OpenLayers.Icon('./galerie/icon_marker.png',size2,offset2);
> 
>                //recupération des coordonnées des centroides depuis la
> base oracle
> en EPSG:2154 et transformation en EPSG:900913
>                markers.addMarker(new
> OpenLayers.Marker(OpenLayers.Projection.transform(OpenLayers.Point(775133.9
> 5,6907235.95), EPSG:2154,EPSG:900913),icon2);
> [...]
> };
> 
>    </script>
> La partie "marker" vous semble-t'elle correcte, notamment la transformation
> ? Ma carte reste désespérément blanche.
> 
> D'avance merci pour tout conseil donné au jeune padawan que je suis.


More information about the Francophone mailing list