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 crtanja polilinija i njihovo vektoriranje 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 na 1 milju 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.