Sulle orme del naturalista Darwin, spinto dalle prime due puntate della trasmissione Evoluti per caso, ho deciso di fare un semplice esperimento con Virtual Earth indicando sulla mappa le tappe del brigantino inglese, il Beagle.
Nella V5 delle Virtual Earth API esiste il supporto per GeoRSS, si tratta di un formato basato su XML avente lo scopo di georeferire RSS.
Se esiste il supporto allora si può dare in pasto a Virtual Earth :D.
Nel caso specifico l'XML è costituito da una serie di item ognuno composto da un titolo, una descrizione e un georss point contenente le coordinate di latitudine longitudine.
<item>
<title>Cape de Verd Islands</title>
<description>Tappa 1: Cape de Verd Islands</description>
<georss:point>14.916667 -23.516667</georss:point>
</item>
Per dare in pasto l'XML con le tappe del Beagle:
<script>
var map = null;
function GetMap()
{
map = new VEMap( 'myMap');
map.LoadMap();
var geoRss = new VEShapeLayer();
var geoRss = new VEShapeSourceSpecification( VEDataType.GeoRSS, "Tappe.xml", geoRss);
map.ImportShapeLayerData( geoRss, LoadShape, true);
}
function LoadShape( layer)
{
var numShapes = layer.GetShapeCount();
for(var i=0; i < numShapes; ++i)
{
var s = layer.GetShapeByIndex(i);
s.SetCustomIcon("images/beagle.gif");
}
}
</script>
L'oggetto VEShapeSourceSpecification definisce le specifiche di importazione dell'oggetto VEShapeLayer.
Il costruttore accetta tre parametri il dataType attraverso l'enumeratore VEDataType: GeoRSS o VECollection, quest'ultimo per importazione da Live Search Maps.
Il secondo parametro è il dataSource, che nel caso di GeoRSS Feed è rappresentato da un URL, infine l'ultimo parametro è il referimento all'oggetto VEShapeLayer.
Il metodo ImportShapeLayerData è autoesplicativo, l'unica nota da evidenziare è il booleano con valore true passato come terzo parametro, che consente di "centrare" la visuale della mappa sugli shape importati.
Con la funzione LoadShape andiamo a personalizzare gli shape importati, nel caso specifico l'immagine del pushpin.
Alcune immagini a lavoro finito:
0 commenti:
Post a Comment