Algebra ja geometria ... milloin aion koskaan käyttää sitä? Google Kartat!

Screen Shot 2014 10 23 klo 3.24.52 PM

Hyvä ystäväni Glenn on yksi Family Watchdogin perustajista. Family Watchdog on yksi niistä fantastisista tarinoista… yritys, joka perustuu mashupiin, joka suorittaa julkista palvelua JA todella tarjoaa elantonsa perustajilleen. On hämmästyttävää mennä töihin joka päivä tietäen, että olet tehnyt eron. Joka kerta kun näen Glennin, hän työskentelee hulluna ja rakastaa jokaista minuuttia.

Tänä iltana autin Glennia pari Google Map -ongelmaa. Halusin jakaa yhden kanssasi… piirtämällä ympyrän Google Mapsiin. Se päättyy (sikäli kuin tiedän), et voi piirtää ympyrää. Sinulla on kuitenkin mahdollisuus piirtää viivaa ja piirtää se haluamallasi tavalla. Joten koodi voidaan rakentaa yksinkertaisesti yhdistämään 36 segmenttiä yhteen ja kääntämään vektoria hieman niin, että ne yhdistyvät ja muodostavat täydellisen ympyrän!

Linjaviivat kirjoitetaan VML (vektorimerkintäkieli), joten se on ilmoitettava tiedoston otsikossa, jotta IE renderöi ne oikein. Firefox tekee sen automaattisesti (tietysti!).

Tässä on katkelma, joka piirtää ympyrän kilometrin päähän kotiisi.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // käyttämällä 3963 mailia maapallon säteenä maileina, jos (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); ryhmälle (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) / PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (teeta)); var PGy = PGcenter.lat () + (PGlat * Math.sin (teeta)); PGpoints.push (uusi GLatLng (PGy, PGx)); }; map.addOverlay (uusi GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } else {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // sylinterilinjan leveys var deltaLat = 250 * latSpan / yyPx; jos (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } muu {PGlat / = 2; };

Katso koko demo nähdäksesi koodi kokonaan. Tapasin tämän sivuston toiminnon, jossa hänellä on useita kerroksia ympyröitä yhdellä kartalla varjostetuilla alueilla.

Mitä mieltä olet?

Tämä sivusto käyttää Akismetiä roskapostin vähentämiseksi. Lue, miten kommenttitietosi käsitellään.