Layer and tile API update.

The tile now has responsibility for resolving feature ids and fetching feature data given x, y pixel offsets with getFeatureId and getFeatureData methods.  The layer has corresponding getFeatureId and getFeatureData methods that take a map location, lookup the appropriate tile, and delegate to the tile for the rest of the work.
This commit is contained in:
Tim Schaub
2012-02-26 21:05:12 -07:00
parent fc03f57591
commit 551c582ab1
4 changed files with 134 additions and 31 deletions
+37 -1
View File
@@ -15,7 +15,7 @@
projection: "EPSG:900913",
layers: [layer],
center: [0, 0],
zoom: 0
zoom: 1
});
}
@@ -158,6 +158,42 @@
});
}
function test_getFeatureId(t) {
t.plan(3);
setUp();
var tile = layer.grid[1][1];
t.delay_call(0.5, function() {
var id = tile.getFeatureId(16, 60);
t.eq(id, "238", "feature 238 at 16, 60");
t.eq(tile.getFeatureId(18, 63), id, "same feature at 18, 63");
t.eq(tile.getFeatureId(300, 10), undefined, "undefined id outside tile");
tearDown();
});
}
function test_getFeatureData(t) {
t.plan(3);
setUp();
var tile = layer.grid[1][1];
t.delay_call(0.5, function() {
var data = tile.getFeatureData(16, 60);
var exp = {
NAME: "Svalbard",
POP2005: 0
};
t.eq(data, exp, "feature data at 16, 60");
t.eq(tile.getFeatureData(17, 62), exp, "same feature at 17, 62");
t.eq(tile.getFeatureData(300, 10), undefined, "undefined data outside tile");
tearDown();
});
}
</script>
</head>