Algebra i geometrija ... kada ću je ikad koristiti? Google Maps!

Snimak zaslona 2014 10 23 na 3.24.52 PM

Moj dobar prijatelj, Glenn, jedan je od osnivača Obiteljskog čuvara. Obiteljski čuvar jedna je od onih fantastičnih priča ... tvrtka osnovana na mashup-u koji obavlja javne usluge I zapravo osigurava život za svoje osnivače. Sigurno je nevjerojatno ići na posao svaki dan znajući da ste nešto promijenili. Svaki put kad vidim Glenna, radi kao lud i voli svaku minutu.

Večeras sam pomogao Glennu u nekoliko problema s Google Mapom. Htio sam ga podijeliti s vama ... crtanje kruga na Google kartama. Završi (koliko znam), zapravo ne možete nacrtati krug. Međutim, imate mogućnost crtati polilinije i vektorirati ih kako vam odgovara. Dakle, kôd se može graditi tako da jednostavno stavi 36 segmenata i lagano nagne vektor tako da se zbrajaju i grade cjeloviti krug!

Poliline su napisane s VML (vektorski jezik za označavanje), tako da mora biti naznačeno u zaglavlju datoteke kako bi ih IE mogao pravilno prikazati. Firefox to čini automatski (naravno!).

Evo isječka koji će povući krug na 1 milju oko vašeg doma.

var PGlat = (PGradius / 3963) * 180 / Matematika.PI; // koristeći 3963 milje kao radijus zemlje u miljama ako (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); za (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 (novi GLatLng (PGy, PGx)); }; map.addOverlay (novi GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // širina polilinije var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } ostalo {PGlat / = 2; };

Pogledajte cijeli demo da biste vidjeli kôd u cijelosti. Dogodila sam se preko funkcije na ovom mjestu gdje ima više slojeva krugova na jednoj karti sa zasjenjenim regijama.

Što vi mislite?

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.