Document toolboxDocument toolbox

GIS

Her er forskelligt GIS relateret info.

GeoMB

GeoJSON formatet var desværre ikke passende til vores formål, da det f.eks. ikke har cirkler. Istedet bruges det hjemmelavede format GeoMB.

En GeoMB struktur definerer et 'layer' med et antal 'features'. En feature kan være enten 'rect', 'polyline', 'shape', 'circle' eller 'point'. 'polyline' og 'shape' kan have undertyper, f.eks. kan 'polyline' have undertypen 'freehand', og 'shape' kan have undertypen 'geofence'.

Et eksempel på GeoMB ses nedenfor:

Layer

Her er hvordan man laver et lag i Javascript:

var features = [];
// define a rectangle
features.push({ type: 'rect',
                x0: 12.1, y0: 55.1, x1: 12.2, y1: 55.2,
                id: 2312, name: 'Target', fill: '#ff0000', stroke: '#ff0000', size: 1 });

var layer = { features: JSON.stringify(features),
              id: 12312,
              name: "Gentofte Kommune grænse"
            };

Den uskønnne brug af JSON.stringify() ser ud til at være nødvendig for at kunne få PHP til at forstår arrayet.

Feature

En feature er et objekt som indeholder attributten 'type' og koordinater. Hvordan koordinaterne angives afhænger af typen.

En feature kan også indeholde attributterne 'id' og 'name'.

For 'rect', 'circle' og 'shape' er attributterne 'fill' (udfyldningsfarve), 'stroke' (stregfarve) og 'size' (stregtykkelse) også gyldige.

For 'polyline' er attributterne 'stroke' og 'size' også gyldige.

For 'point' er attributten 'marker' også gyldig.

Rect

Koordinaterne angives som 'x0', 'y0', 'x1', 'y1'. x er længdegrad, y er breddegrad.

var rect = { type: 'rect, 'x0': 12.1, 'y0': 55.1, 'x1': 12.2, 'y1': 55.2, id: 21, fill: '#0000ff' };

Polyline / Shape

Forskellen på en 'polyline' og en 'shape' er at 'shape' er udfyldt.

Koordinater angives som f.eks.

var coords = [ [ 12.100, 55.100 ], [ 12.101, 55.100 ], [ 12.101, 55.101 ] ];
var polyline = { type: 'polyline', points: coords, stroke: '#00ff00', size: 2 };

Circle

Koordinaterne angives som 'x', 'y', 'r'. x er længdegrad, y er breddegrad.

'r' angiver en radius, målt i breddegrader. Det antages at jordens radius er 40008 km. Cirkler med meget store radii er ikke praktiske.

var c = { type: 'circle', x: 12.1, y: 55.1, r: 0.001, stroke: '#000000', size: 3 };

Point

Koordinater angives om 'x' og 'y'.

var p = { type: 'point', x: 12.1, y: 55.101, marker: 2, name: 'Her bor jeg!' };

Text

ENDNU IKKE DEFINERET