Making sketch handlers work over the dateline by using layer.getLonLatFromViewPortPx instead of map.getLonLatFromPixel. Thanks bartvde for the unit and acceptance tests. r=bartvde (closes #2787)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@12346 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-09-08 17:53:44 +00:00
parent 21423cefe2
commit 98be6e313b
10 changed files with 175 additions and 23 deletions

View File

@@ -149,9 +149,6 @@
function test_Handler_RegularPolygon_irregular(t) {
t.plan(4);
var map = {
getLonLatFromPixel: function(px) {
return {lon: px.x, lat: px.y};
},
getResolution: function() {
return 1;
}
@@ -164,6 +161,9 @@
t.eq(ring.components[0].y, 10, "correct bottom");
t.eq(ring.components[2].x, 10, "correct left");
t.eq(ring.components[2].y, 15, "correct top");
},
getLonLatFromViewPortPx: function(px) {
return {lon: px.x, lat: px.y};
}
};
var control = {};
@@ -190,11 +190,7 @@
t.plan(1);
// setup
var map = new OpenLayers.Map("map", {
getLonLatFromPixel: function(px) {
return {lon: px.x, lat: px.y};
}
});
var map = new OpenLayers.Map("map");
var control = {"map": map};
@@ -211,6 +207,17 @@
var isLeftClick = OpenLayers.Event.isLeftClick;
OpenLayers.Event.isLeftClick = function() { return true; };
handler.layer = {
renderer: {
clear: OpenLayers.Function.Void
},
addFeatures: OpenLayers.Function.Void,
drawFeature: OpenLayers.Function.Void,
destroyFeatures: OpenLayers.Function.Void,
getLonLatFromViewPortPx: function() {
return xy;
}
};
// test
map.events.triggerEvent("mousedown", {"xy": xy});