7 votos

OpenLayers Selectfeature obtener la posición del ratón

Me han estado buscando durante varias horas y no encuentro la manera para obtener coordenadas del ratón después de un SelectFeature, que devuelve la función por sí mismo. Vi que esto se ha pedido varias veces antes, así que inténtelo de nuevo!

3voto

Ajay Puntos 1

Cuando inicio el mapa agregar este control:

mapMousePosition = new OpenLayers.Control.MousePosition({
        displayProjection: new OpenLayers.Projection(displayProjection)
});

En el controlador Haz lonLat como esta:

 var lonLat = map.getLonLatFromPixel(
      new OpenLayers.Pixel(
         mapMousePosition.lastXy.x,
         mapMousePosition.lastXy.y
);

2voto

texai Puntos 178

Se puede obtener con estas maneras:

feature.geometry.getBounds().getCenterLonLat()

o

map.events.register("click", map, function(e) { 
    var latlon = map.getLonLatFromViewPortPx(e.xy) ;
    alert(lonlat)
});

o

new OpenLayers.Control.SelectFeature(layer,{
    hover:true,
    eventListeners:{
      onSelect:function(e){
        alert(e.feature.geometry)
    }
});

o

layer.events.on({
            "featureselected": function(e) {       
            alert(e)
            }
});    

Espero te ayuda a...

2voto

George P. Burdell Puntos 1095

mi estrategia (recursos intensivo) es escuchar mousemove y constantemente ahorro x y y los valores en variables globales.

var mouseLat, mouseLon;
function init(){
  ...
  map.events.register("mousemove", map, function(e) {
    var position = this.events.getMousePosition(e);
    var lonlat = map.getLonLatFromPixel(position);
    var lonlatTransf = lonlat.transform(map.getProjectionObject(), proj4326);
    mouseLat = lonlatTransf.lat;
    mouseLon = lonlatTransf.lon;
    OpenLayers.Util.getElement("coords").innerHTML = "Lat: "+ mouseLat+" | Lon: "+mouseLon;
  });
  ...
}

Cuando se selecciona la opción, tener acceso a estos valores desde dentroonFeatureSelect(event)

1voto

bob-the-destroyer Puntos 138

Como una adición a la respuesta de Laurentiu Turcu:

Mientras pensaba que esto es una pregunta interesante configurar un jsfiddle que demuestra cómo mostrar la ventana emergente en la última mousePosition al seleccionar una función:

http://jsfiddle.net/Expedio/2asrpnm8/

así que incluso si se trata de 3 años... tal vez alguien puede utilizar este si stumples a través de esta pregunta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X