Por ejemplo si queremos un mapa que nos mida las ventas por país como éste:
o como éste
Tenemos algunas maneras interesantes de hacerlas:
Lo primero es dibujar o importar el mapa, el mapa por lo general está definido en formato svg el cual es un formato de coordenadas, que se ve como ésto:
<svg height="210" width="500">
<polygon points="200,10 250,190 160,210" style="fill:lime;stroke:purple;stroke-width:1" />
Sorry, your browser does not support inline SVG.
</svg>
pero claro ése es un triángulo, su mapa se verá como ésto:
perdonen, éste es solo un segmento del mapa, pero se debe incluir en nuestro programa cada segmento a estudiar y formar el mapa con la unión de todos ellos.
En nuestro programa creamos un objeto TPATH y en TPath.data insertamos los puntos vistos que forman nuestra región, crearemos un objeto para cada región que forma nuestro mapa.
Una vez completada la inserción de todas las regiones ( y debidamente identificadas ) podemos manipular su color con un simple case.
begin
FireDAC.Connected := True;
try
FDQuerySelect.Open;
FDQuerySelect.First;
while(not FDQuerySelect.EOF)do
begin
Case (FDQuerySelect.FieldByName(‘MType’).AsInteger) of
1 : Pathlist[FDQuerySelect.index].fill.color := Green;
0 : Pathlist[FDQuerySelect.index].fill.color := Red;
0 : Pathlist[FDQuerySelect.index].fill.color := Red;
else
Pathlist[FDQuerySelect.index].fill.color := Blue;
end;
FDQuerySelect.Next;
end;
Form.Redraw;
end;
Éste es tan sólo un ejemplo de lo que podemos hacer con Delphi, los reto a hacer lo mismo con Live Bindings
end;
Form.Redraw;
end;
Éste es tan sólo un ejemplo de lo que podemos hacer con Delphi, los reto a hacer lo mismo con Live Bindings
No comments:
Post a Comment