2009-05-01 10 views
1

Ich verwende OpenLayers, um eine Box von Interesse mit meinem Programm zu erstellen. Ich verwende diesen Code:Erstellen einer Box Steuerung über einen Bereich der Karte mit OpenLayers

var control = new OpenLayers.Control(); 
OpenLayers.Util.extend(control, { 
    draw: function() { 
     this.box = new OpenLayers.Handler.Box(control, 
      {"done": this.notice}, 
      {keyMask: OpenLayers.Handler.MOD_SHIFT}); 
     this.box.activate(); 
    }, 
    notice: function (bounds) { 
     areaSelected(bounds); 
    } 
}); 
map.addControl(control); 

die „Shift erstellen Box“ control und nutzen das Gebiet als mein Interessengebiet ausgewählt zu erfassen. Die Werte kommen jedoch als Pixel zurück. Aber ich möchte Längen- und Breitengrad, nicht Pixel. Die Mausposition control zeigt die korrekte Länge & lat. Es ist mir wirklich egal, wie man eine Box erstellt, ich möchte nur eine einfache Möglichkeit für den Benutzer, einen Bereich der Karte zu wählen, und ich brauche die Lat & Longs der Gegend. (Box, Kreis, keine Rolle spielt)

Antwort

0

Sehr späte Antwort, aber meine Hilfe andere in der Zukunft!

ich es geschafft, die Dezimalgraden von den Pixeln indem Sie folgendermaßen vorgehen zu erhalten:

var point1 = new OpenLayers.Pixel(bounds.left, bounds.bottom); 
var point2 = new OpenLayers.Pixel(bounds.right, bounds.top); 

var ll1 = map.getLonLatFromPixel(point1); 
var ll2 = map.getLonLatFromPixel(point2); 

Tropfen, der in Ihrer Mitteilung Funktion und Sie werden die lat/long-Paare in ll1 & ug2 haben!