82 lines
2.1 KiB
JavaScript
82 lines
2.1 KiB
JavaScript
var points = new OpenLayers.Layer.PointGrid({
|
|
name: "Snap Grid",
|
|
dx: 600, dy: 600,
|
|
styleMap: new OpenLayers.StyleMap({
|
|
pointRadius: 1,
|
|
strokeColor: "#3333ff",
|
|
strokeWidth: 1,
|
|
fillOpacity: 1,
|
|
fillColor: "#ffffff",
|
|
graphicName: "square"
|
|
})
|
|
});
|
|
|
|
var lines = new OpenLayers.Layer.Vector("Lines", {
|
|
styleMap: new OpenLayers.StyleMap({
|
|
pointRadius: 3,
|
|
strokeColor: "#ff3300",
|
|
strokeWidth: 3,
|
|
fillOpacity: 0
|
|
})
|
|
});
|
|
|
|
var map = new OpenLayers.Map({
|
|
div: "map",
|
|
layers: [new OpenLayers.Layer.OSM(), points, lines],
|
|
controls: [
|
|
new OpenLayers.Control.Navigation(),
|
|
new OpenLayers.Control.LayerSwitcher(),
|
|
new OpenLayers.Control.Attribution()
|
|
],
|
|
restrictedExtent: new OpenLayers.Bounds(
|
|
1035374, 7448940, 1074510, 7468508
|
|
),
|
|
center: new OpenLayers.LonLat(1054942, 7458724),
|
|
zoom: 13
|
|
});
|
|
|
|
// configure the snapping agent
|
|
var snap = new OpenLayers.Control.Snapping({
|
|
layer: lines,
|
|
targets: [{
|
|
layer: points,
|
|
tolerance: 15
|
|
}]
|
|
});
|
|
snap.activate();
|
|
|
|
// add some editing tools to a panel
|
|
var panel = new OpenLayers.Control.Panel({
|
|
displayClass: "olControlEditingToolbar"
|
|
});
|
|
var draw = new OpenLayers.Control.DrawFeature(
|
|
lines, OpenLayers.Handler.Path,
|
|
{displayClass: "olControlDrawFeaturePath", title: "Draw Features"}
|
|
);
|
|
modify = new OpenLayers.Control.ModifyFeature(
|
|
lines, {displayClass: "olControlModifyFeature", title: "Modify Features"}
|
|
);
|
|
panel.addControls([
|
|
new OpenLayers.Control.Navigation({title: "Navigate"}),
|
|
modify, draw
|
|
]);
|
|
map.addControl(panel);
|
|
|
|
var rotation = document.getElementById("rotation");
|
|
rotation.value = String(points.rotation);
|
|
rotation.onchange = function() {
|
|
points.setRotation(Number(rotation.value));
|
|
};
|
|
|
|
var spacing = document.getElementById("spacing");
|
|
spacing.value = String(points.dx);
|
|
spacing.onchange = function() {
|
|
points.setSpacing(Number(spacing.value));
|
|
};
|
|
|
|
var max = document.getElementById("max");
|
|
max.value = String(points.maxFeatures);
|
|
max.onchange = function() {
|
|
points.setMaxFeatures(Number(max.value));
|
|
};
|