Algebra och geometri ... när kommer jag någonsin att använda den? Google kartor!

Skärmdump 2014 10 23 på 3.24.52 PM

En god vän till mig, Glenn, är en av grundarna av Family Watchdog. Family Watchdog är en av de fantastiska berättelserna ... ett företag grundat på en mashup som utför en offentlig tjänst OCH faktiskt försörjer sina grundare. Det måste vara fantastiskt att gå till jobbet varje dag och veta att du har gjort skillnad. Varje gång jag ser Glenn arbetar han som en galen och älskar varje minut av det.

Ikväll hjälpte jag Glenn med ett par problem med Google Map. Jag ville dela en med dig ... rita en cirkel på Google Maps. Det hamnar (så vitt jag vet), du kan faktiskt inte rita en cirkel. Du har dock förmågan att rita polylinjer och vektorera dem som du tycker passar. Så koden kan byggas för att helt enkelt sätta ihop 36 segment och vinkla vektorn så att de lägger till och bygger en komplett cirkel!

Polylinjerna är skrivna med VML (vektormarkeringsspråk), så det måste anges i rubriken för filen för att IE ska kunna göra dem korrekt. Firefox gör det automatiskt (naturligtvis!).

Här är ett utdrag som drar en cirkel 1 mil runt ditt hem.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // använder 3963 miles som jordens radie i miles om (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); för (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)); } annat {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // bredd på polyline var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } annat {PGlat / = 2; };

Se hela demo för att se koden i sin helhet. Jag hände över funktionen på den här webbplatsen där han har flera lager av cirklar på en enda karta med skuggade regioner.

Vad tror du?

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.