1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| // positionnement du marqueur
var position = new OpenLayers.Geometry.Point(this.longitude, this.latitude);
position.transform(OpenLayers.Projection.CRS84, this.carteGeoportail.projection);
// création du marqueur
this.marqueurGeoportail = new OpenLayers.Feature.Vector(
position, null, { externalGraphic:IMAGE_MARQUEUR, graphicWidth:26, graphicHeight:32, graphicXOffset:-12, graphicYOffset:-32 }
);
// couche du marqueur
if (!this.layerGeoportail)
this.layerGeoportail = new OpenLayers.Layer.Vector('Marqueur');
this.layerGeoportail.addFeatures([this.marqueurGeoportail]);
this.carteGeoportail.getMap().addLayer(this.layerGeoportail);
// déplacement du marqueur
if (!this.dragGeoportail && this.modifiable) {
this.dragGeoportail = new OpenLayers.Control.DragFeature(this.layerGeoportail);
this.carteGeoportail.getMap().addControl(this.dragGeoportail);
this.dragGeoportail.activate();
this.dragGeoportail.onComplete = function (marker, point) {
var pt = TheCarte.carteGeoportail.getMap().getLonLatFromViewPortPx(point);
pt.transform(TheCarte.carteGeoportail.getMap().getProjection(), OpenLayers.Projection.CRS84);
TheCarte.latitude = pt.lat;
TheCarte.longitude = pt.lon;
TheCarte.centrerCarte();
document.getElementById('carteLatitude').setAttribute('value', TheCarte.latitude);
document.getElementById('carteLongitude').setAttribute('value', TheCarte.longitude);
};
} |
Partager