Algebra og geometri ... når vil jeg noen gang bruke den? Google Kart!

Screen Shot 2014 10 23 på 3.24.52 PM

En god venn av meg, Glenn, er en av grunnleggerne av Family Watchdog. Family Watchdog er en av de fantastiske historiene ... et selskap grunnlagt på en mashup som utfører en offentlig tjeneste og faktisk forsørger grunnleggerne. Det må være utrolig å gå på jobb hver dag og vite at du har gjort en forskjell. Hver gang jeg ser Glenn, jobber han som en gal og elsker hvert minutt av det.

I kveld hjalp jeg Glenn med et par problemer med Google Map. Jeg ønsket å dele en med deg ... tegne en sirkel på Google Maps. Det slynger (så vidt jeg vet), du kan faktisk ikke tegne en sirkel. Du har imidlertid muligheten til å tegne polyliner og vektorere dem slik du ønsker det. Så koden kan bygges for å bare sette 36 segmenter sammen og litt vinkle vektoren slik at de legger sammen og bygger en komplett sirkel!

Polylinjene er skrevet med VML (vektormarkeringsspråk), så det må angis i overskriften på filen for at IE skal gjengi dem riktig. Firefox gjør det automatisk (selvfølgelig!).

Her er et utdrag som vil tegne en sirkel en kilometer rundt hjemmet ditt.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // bruker 3963 miles som jordens radius i miles hvis (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); for (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) / PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (theta)); var PGy = PGcenter.lat () + (PGlat * Math.sin (theta)); PGpoints.push (ny GLatLng (PGy, PGx)); }; map.addOverlay (ny GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } annet {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // bredde på polyline var deltaLat = 250 * latSpan / yyPx; hvis (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } annet {PGlat / = 2; };

Se hele demoen for å se koden i sin helhet. Jeg skjedde på tvers av funksjonen på dette nettstedet der han har flere lag med sirkler på et enkelt kart med skyggelagte områder.

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.