Algebra ir geometrija ... kada kada ją naudosiu? Google žemėlapiai!

Ekrano fotografija 2014 10 23 3.24.52 PM

Geras mano draugas Glennas yra vienas iš „Family Watchdog“ įkūrėjų. „Šeimos sargybinis“ yra viena iš tų fantastiškų istorijų ... įmonė, įkurta „mashup“, kuri teikia viešąsias paslaugas IR iš tikrųjų teikia pragyvenimą savo įkūrėjams. Tikrai nuostabu eiti į darbą kiekvieną dieną, žinant, kad jūs ką nors pakeitėte. Kiekvieną kartą, kai pamatau Glenną, jis dirba beprotiškai ir myli kiekvieną minutę.

Šį vakarą aš padėjau Glennui išspręsti kelias „Google Map“ problemas. Norėjau pasidalinti vienu su jumis ... brėždamas ratą „Google“ žemėlapiuose. Tai baigiasi (kiek žinau), iš tikrųjų negalima piešti apskritimo. Tačiau jūs turite galimybę nubrėžti linijas ir vektorizuoti jas, kaip jums atrodo tinkama. Taigi, kodas gali būti sudarytas taip, kad paprasčiausiai sujungtų 36 segmentus ir šiek tiek pakreiptų vektorių, kad jie susumuotų ir sudarytų visą ratą!

Linijinės linijos užrašytos VML (vektorinė žymėjimo kalba), todėl ji turi būti nurodyta failo antraštėje, kad IE jas tinkamai pateiktų. „Firefox“ tai daro automatiškai (žinoma!).

Štai fragmentas, nupiešiantis apskritimą 1 mylia aplink jūsų namus.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // naudojant 3963 mylių kaip žemės spindulį myliomis, jei (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); už (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) / PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (teta)); var PGy = PGcenter.lat () + (PGlat * Math.sin (teta)); PGpoints.push (naujas GLatLng (PGy, PGx)); }; map.addOverlay (nauja GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // linijos plotis var deltaLat = 250 * latSpan / yyPx; jei (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } dar {PGlat / = 2; };

Peržiūrėkite visą demonstracinę versiją, kad pamatytumėte visą kodą. Atsitiko šioje svetainėje esančioje funkcijoje, kur jis turi kelis apskritimų sluoksnius viename žemėlapyje su tamsesniais regionais.

Ką manote?

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.