Da Jeg efterhånden har lavet en del applikationer med google maps, så som rute opmåling, oprettelse af POI’s til GPS systemer mm, følger jeg også interesseret med i hvad der sker med MS pendant; MS Virtual earth eller live maps, eller hvad navn den nu engang går under :-) Lad os kalde det for live maps.
For ikke så længe siden kom version 6.1 af Live maps, og der er kommet mange store forbedringer, og det er nu klart en konkurrent til google maps.
Men hvordan virker det i forhold til google maps?
Hello world eksemplet er simpelt, og er næsten identisk med google maps. Dog slipper man for google maps irreterende nøgle ting.
Der skal først laves en henvisning til API'et:
<script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
Derefter skal koden der viser kortet skrives:
var map = null;
function GetMap()
{
map = new VEMap('myMap');
map.LoadMap(new VELatLong(56.10741204508214, 10.197979913045864), 10 ,'b' ,false);
}
Så skal der tilføjes en div, hvori kortet skal vises:
<div id='myMap' style="position:relative; width:500px; height:500px;"></div>
I din body angiver du at GetMap funktion skal kaldes onload:
<body onload="GetMap();">
Og halleluja. Du har nu et MS kort på din side
Derudover kan også nævnes, at MS Live maps, har et aldeles fremragende interaktivt SDK, som viser hvordan man programmere standard ting op mod det. SDK’et er fyldt med referencer til kode dokumentation. Dette er en fantastisk brugbar ting. Se det her: http://dev.live.com/virtualearth/sdk/
En ting man ofte ønsker at at tilføje er en eller anden form for pegepind, som kan angive en position. Dette bliver både i google maps og Live maps kaldt for en pushpin. Den tilføjes på følgende måde:
var shape = new VEShape(VEShapeType.Pushpin, map.GetCenter());
shape.SetTitle('Multi banen');
shape.SetDescription('Her spilles dagligt drablige fodbold kampe mellem Frej, Line og jeg :-)');
map.AddShape(shape);
Funktions kaldene giver nærmest sig selv.
Af ting, som MS Live maps har, og som google maps ikke har kan nævnes.
Eksport til forskellige GPS formater. Jeg har selv før lavet applikationer, som kunne eksportere punkter til GPS apparater. De forskellige GPS fabrikanter, bruger dog forskellige formater, og det er rart at man bare med et funktionskald, kan eksportere dataene i det format man har lyst til.
Birds eye view. Birds eye view er en visning af kortet, hvor man ser bygningerne fotograferet skråt oppe fra. Det er virkeligt flot, og i modsætning til google maps sattalite view, hvor man jo kun kan se husene oppe fra, er det virkelig en forbedring. I Birds eye view kan man også rotere rundt om bygninger, og se dem fra forskellige sider. En ”meget” træls feature ved birdseye view, er dog at det er svært at få informationer ud af, når man programmere op mod det. Der er nogen forskellige hacks til det, men de kan ikke anbefales. Konklusionen er nok, at birds eye view er bedst til visning af data, og ikke godt til at opsamle informationer fra sine brugere. Et andet problem er, at birds eye view ikke dækker ret store dele af verden, så der kan man også hurtigt støde ind i forhindringer.
Nederst er vist et eksempel af birdseye view, vha af den kode der er skrevet tidligere i tutorialen. Hvis du kigger på loadmap funktionen kan du se at der er angivet et 'b'. Det angiver at kortet skal loades i birdseye view.
Der er også en del andre sjove funkie ting, som blandt andet 3D visning af store byer og meget andet, men de er ikke så interessant set fra et udviklings synspunkt.
Der er også rigtigt mange gode ting vedr. vejvisning og optegning af ruter med mere, men det kommer der mere om i del 2. af denne tutorial.
Konklusionen er, at MS Live maps kan en del ting som google maps ikke kan. Til gengæld er detaljegraden af satellit billeder ikke så god. I hvert fald ikke når det gælder Danmark.
Men alt i alt, er de 2 versioner næsten lige gode, og det ender nok for de fleste om at være et religions spørgsmål, hvilken udbyder de har lyst til at bruge.
NB! Kort eksemplet er fjernet pga af et DNS angreb 