weitere Beispiele zur Berechnung der Selektionsgeometrie für Punkt- und Linienobjekte
// konstanter Radius (für Symbole ohne min/max Pixelgröße)
var radius=20; //Meter
return "gCircle:"+x+"|"+y+"|"+radius;
-----------oder------------------------------
// Berechnung für Symbole mit min/max Pixelgröße
var minSize=15; //Pixel
var maxSize=40; //Pixel
var symbolDiameter=80; //Meter
var size=symbolDiameter/((1/3200)*scale);
var size=Math.max(Math.min(size,maxSize),minSize);
var radius=(1/3200*size*scale)/2;
return "gCircle:"+x+"|"+y+"|"+radius;
-----------oder------------------------------
// Berechnung nach Eigenschaften eines Liniensymbols (mit min/max Größe)
var minSize=1; //Pixel
var maxSize=50; //Pixel
var symbolDiameter=30; //skalierte Linie (3mm bei 10000) -> 3mm * 10000
// einfaches Symbol mit minMaxSize
var size=symbolDiameter/((1/3200)*scale);
var size=Math.max(Math.min(size,maxSize),minSize);
var radius=(1/3200*size*scale)/2;
return "gCircle:"+x+"|"+y+"|"+radius;
-----------oder------------------------------
// Punkt mit minMaxSize und Maßstabsabhängigem Symbolwechsel)
if(scale>400000)
{
var minSize=5;
var maxSize=20;
var symbolDiameter=50;
var size=symbolDiameter/((1/3200)*scale);
var size=Math.max(Math.min(size,maxSize),minSize);
var radius=(1/3200*size*scale)/2;
return "gCircle:"+x+"|"+y+"|"+radius;
}
else
{
var minSize=20;
var maxSize=30;
var symbolDiameter=100;
var size=symbolDiameter/((1/3200)*scale);
var size=Math.max(Math.min(size,maxSize),minSize);
var radius=(1/3200*size*scale)/2;
return "gCircle:"+x+"|"+y+"|"+radius;
}
---------------- oder ----------------------
//Punktsymbol mit fixen Symbolgrößen in bestimmten Maßstabsbreichen
var size=25;
var sc=scale;
var radius=null;
if(sc>=0&&sc<=10000)size=25;
else if(sc>=10000&&sc<=11428 )size=24;
else if(sc>=11428&&sc<=13333 )size=23;
else if(sc>=13333&&sc<=16000 )size=22;
else if(sc>=16000&&sc<=20000 )size=21;
else if(sc>=20000&&sc<=26667 )size=20;
else if(sc>=26667&&sc<=40000 )size=19;
else if(sc>=40000&&sc<=80000 )size=18;
else if(sc>=80000)radius=450;
if(radius==null) radius=1/3200*size*scale;
radius*=.5;
return 'gCIRCLE:'+x+'|'+y+'|'+radius;