Algebra og geometri ... hvornår vil jeg nogensinde bruge det? Google kort!

Skærmbillede 2014 10 23 på 3.24.52 PM

En god ven af ​​mig, Glenn, er en af ​​grundlæggerne af Family Watchdog. Family Watchdog er en af ​​de fantastiske historier ... et firma grundlagt på en mashup, der udfører en offentlig tjeneste OG faktisk lever af sine grundlæggere. Det må være fantastisk at gå på arbejde hver dag, vel vidende at du har gjort en forskel. Hver gang jeg ser Glenn, arbejder han som en skør og elsker hvert minut af det.

I aften hjalp jeg Glenn med et par problemer med Google Map. Jeg ville dele en med dig ... tegne en cirkel på Google Maps. Det vinder op (så vidt jeg ved), du kan faktisk ikke tegne en cirkel. Du har dog evnen til at tegne polyliner og vektorere dem, som du finder det passende. Så koden kan bygges for simpelthen at sætte 36 segmenter sammen og vinkle vektoren lidt, så de tilføjes og bygger en komplet cirkel!

Polylinerne er skrevet med VML (vector markup sprog), så det skal angives i filens overskrift for at IE skal gengive dem korrekt. Firefox gør det automatisk (selvfølgelig!).

Her er et uddrag, der tegner en cirkel 1 mil rundt om dit hjem.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // bruger 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)); } andet {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // bredde af polyline var deltaLat = 250 * latSpan / yyPx; hvis (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } andet {PGlat / = 2; };

Se hele demoen for at se koden i sin helhed. Jeg skete på tværs af funktionen på dette sted, hvor han har flere lag cirkler på et enkelt kort med skyggefulde områder.

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.