[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