Algebra en Meetkunde ... wanneer sal ek dit ooit gebruik? Google kaarte!
'N Goeie vriend van my, Glenn, is een van die stigters van Family Watchdog. Family Watchdog is een van die fantastiese verhale ... 'n maatskappy wat gebaseer is op 'n mashup wat 'n staatsdiens verrig EN eintlik 'n bestaan lewer vir sy stigters. Dit moet ongelooflik wees om elke dag werk toe te gaan met die wete dat u 'n verskil gemaak het. Elke keer as ek Glenn sien, werk hy soos 'n gek en hou elke minuut daarvan.
Vanaand het ek Glenn gehelp met 'n paar Google Map-kwessies. Ek wou een met u deel ... teken 'n sirkel op Google Maps. Dit beland (sover ek weet), jy kan nie eintlik 'n sirkel trek nie. U het egter die vermoë om polylines te teken en dit volgens u wense te vektor. Die kode kan dus gebou word om eenvoudig 36 segmente bymekaar te sit en die vektor effens te laat kantel, sodat dit 'n volledige sirkel optel!
Die polelyne word met geskryf VML (vector-opmaaktaal), dus moet dit in die kopkop van die lêer aangedui word sodat IE dit behoorlik kan weergee. Firefox doen dit outomaties (natuurlik!).
Hier is 'n uittreksel wat 'n sirkel van 1 kilometer om u huis sal trek.
var PGlat = (PGradius / 3963) * 180 / Math.PI; // die gebruik van 3963 myl as aarde se radius in myl as (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); vir (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 (nuwe GLatLng (PGy, PGx)); }; map.addOverlay (nuwe GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } anders {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // breedte van polylien var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } anders {PGlat / = 2; };
Kyk na die volledige demo om die kode volledig te sien. Ek het die funksie op hierdie webwerf gesien waar hy verskeie lae sirkels op een kaart met skaduwe streke het.