80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
"use strict";
|
|
|
|
var MarkerLayer;
|
|
var NextLon = 0;
|
|
var NextLat = 0;
|
|
|
|
function setup_markers_test() {
|
|
MarkerLayer = new ol.layer.Vector({
|
|
source: new ol.source.Vector(),
|
|
});
|
|
|
|
var map = new ol.Map({
|
|
target: 'map_canvas',
|
|
layers: [
|
|
MarkerLayer
|
|
],
|
|
view: new ol.View({
|
|
center: ol.proj.fromLonLat([5, 0]),
|
|
zoom: 7
|
|
}),
|
|
controls: [new ol.control.Zoom(),
|
|
new ol.control.Rotate()],
|
|
loadTilesWhileAnimating: true,
|
|
loadTilesWhileInteracting: true
|
|
});
|
|
|
|
for (var type in TypeDesignatorIcons) {
|
|
add_marker(type, TypeDesignatorIcons[type]);
|
|
}
|
|
|
|
for (var type in TypeDescriptionIcons) {
|
|
add_marker(type, TypeDescriptionIcons[type]);
|
|
}
|
|
|
|
for (var category in CategoryIcons) {
|
|
add_marker("Cat " + category, CategoryIcons[category]);
|
|
}
|
|
|
|
add_marker("Default", DefaultIcon);
|
|
|
|
map.getView().setCenter(ol.proj.fromLonLat([5, NextLat/2]));
|
|
}
|
|
|
|
function add_marker(title, baseMarker) {
|
|
var weight = (1 / baseMarker.scale).toFixed(1);
|
|
var icon = new ol.style.Icon({
|
|
anchor: baseMarker.anchor,
|
|
anchorXUnits: 'pixels',
|
|
anchorYUnits: 'pixels',
|
|
scale: baseMarker.scale,
|
|
imgSize: baseMarker.size,
|
|
src: svgPathToURI(baseMarker.path, baseMarker.size, '#000000', weight, '#00C000'),
|
|
rotation: 0,
|
|
opacity: 1.0,
|
|
rotateWithView: (baseMarker.noRotate ? false : true)
|
|
});
|
|
|
|
var markerStyle = new ol.style.Style({
|
|
image: icon,
|
|
text: new ol.style.Text({
|
|
textAlign: 'center',
|
|
textBaseline: 'top',
|
|
offsetY: 30,
|
|
text: title,
|
|
scale: 1.5
|
|
})
|
|
});
|
|
|
|
var pos = [NextLon, NextLat];
|
|
var marker = new ol.Feature(new ol.geom.Point(ol.proj.fromLonLat(pos)));
|
|
marker.setStyle(markerStyle);
|
|
MarkerLayer.getSource().addFeature(marker);
|
|
|
|
NextLon += 1;
|
|
if (NextLon >= 10) {
|
|
NextLon -= 10;
|
|
NextLat -= 1;
|
|
}
|
|
}
|