Algebra i geometrija ... kada ću je ikada koristiti? Google mape!

Screen Shot 2014 10 23 na 3.24.52 PM

Moj dobar prijatelj, Glenn, jedan je od osnivača Porodičnog čuvara. Porodični čuvar jedna je od onih fantastičnih priča ... kompanija osnovana na mashup-u koji obavlja javne usluge I zapravo osigurava život za svoje osnivače. Sigurno je nevjerovatno svakodnevno ići na posao 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 podijeliti jedan s vama ... crtanje kruga na Google mapama. 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 izgraditi tako da jednostavno stavi 36 segmenata i lagano nagne vektor tako da se zbrajaju i grade kompletan krug!

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

Evo isječka koji će nacrtati krug oko 1 km oko vaše kuće.

var PGlat = (PGradius / 3963) * 180 / Matematika.PI; // koristeći 3963 milje kao radijus zemlje u miljama if (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 poliline 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 mapi sa zasjenjenim regijama.

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.