Algebra en meetkunde ... wanneer zal ik het ooit gebruiken? Google Maps!
Een goede vriend van mij, Glenn, is een van de oprichters van Family Watchdog. Family Watchdog is een van die fantastische verhalen… een bedrijf opgericht op basis van een mashup die een openbare dienst verricht EN feitelijk de kost voorziet van zijn oprichters. Het moet geweldig zijn om elke dag naar je werk te gaan, wetende dat je een verschil hebt gemaakt. Elke keer als ik Glenn zie, werkt hij als een gek en geniet hij van elke minuut.
Vanavond heb ik Glenn geholpen met een paar Google Map-problemen. Ik wilde er een met jullie delen ... een cirkel tekenen op Google Maps. Het eindigt (voor zover ik weet), je kunt eigenlijk geen cirkel tekenen. U hebt echter de mogelijkheid om polylijnen te tekenen en deze naar eigen inzicht te vectoriseren. De code kan dus worden gebouwd om eenvoudig 36 segmenten samen te voegen en de vector een beetje in een hoek te plaatsen, zodat ze optellen en een complete cirkel vormen!
De polylijnen zijn geschreven met VML (vector markup language), dus het moet worden aangegeven in de header van het bestand zodat IE ze correct kan weergeven. Firefox doet het automatisch (natuurlijk!).
Hier is een fragment dat een cirkel van 1 km rond uw huis trekt.
var PGlat = (PGradius / 3963) * 180 / Math.PI; // gebruik 3963 mijl als de straal van de aarde in mijlen if (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); voor (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 (nieuwe GLatLng (PGy, PGx)); }; map.addOverlay (nieuwe GPolyline (PGpoints, PGcolor, PGwidth, PGtrans)); } anders {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // breedte van polylijn var deltaLat = 250 * latSpan / yyPx; if (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } anders {PGlat / = 2; };
Bekijk de volledige demo om de volledige code te zien. Ik kwam de functie tegen op deze site waar hij meerdere lagen cirkels heeft op een enkele kaart met gearceerde gebieden.