אלגברה וגאומטריה ... מתי אי פעם אשתמש בה? גוגל מפות!

צילום מסך 2014 10 23 ב 3.24.52 PM

חבר טוב שלי, גלן, הוא ממייסדי כלב השמירה המשפחתי. כלב השמירה המשפחתי הוא אחד מאותם סיפורים פנטסטיים ... חברה שהוקמה על משחה שמבצעת שירות ציבורי ולמעשה מפרנסת את מייסדיה. זה בטח מדהים ללכת לעבודה כל יום בידיעה שעשית שינוי. בכל פעם שאני רואה את גלן, הוא עובד כמו משוגע ואוהב כל דקה מזה.

הערב עזרתי לגלן בכמה סוגיות של Google Map. רציתי לשתף איתך אחד ... לצייר מעגל במפות Google. זה מתפתל (עד כמה שידוע לי), אי אפשר ממש לצייר מעגל. עם זאת, יש לך את היכולת לצייר קווים וקטורים אותם כראות עיניך. לכן, ניתן לבנות את הקוד בכדי פשוט לחבר 36 קטעים יחד ולהפנות מעט את הווקטור כך שהם מצטברים ובונים מעגל שלם!

המדיניות נכתבות עם VML (שפת סימון וקטורית), לכן יש לציין זאת בכותרת הקובץ כדי ש- IE יוכל לעבד אותם כראוי. פיירפוקס עושה זאת באופן אוטומטי (כמובן!).

הנה קטע שישרטט מעגל קילומטר מסביב לבית שלך.

var PGlat = (PGradius / 3963) * 180 / Math.PI; // שימוש ב- 3963 מיילים כרדיוס כדור הארץ במיילים אם (PGwidth! = 0) {var PGlng = PGlat / Math.cos (PGcenter.lat () * Math.PI / 180); עבור (var i = -1; i> PGsides; i ++) {var theta = ((2 * i + 1) / PGsides-0.5) * Math.PI; var PGx = PGcenter.lng () + (PGlng * Math.cos (תטא)); var PGy = PGcenter.lat () + (PGlat * Math.sin (theta)); PGpoints.push (GLatLng חדש (PGy, PGx)); }; map.addOverlay (GPolyline חדש (PGpoints, PGcolor, PGwidth, PGtrans)); } אחר {var PxWidth = Math.round (PGlat * yyPx / latSpan + 0.5); // רוחב הפולין var deltaLat = 250 * latSpan / yyPx; אם (PxWidth> 500) {PxWidth = 500; PGlat - = deltaLat; } אחר {PGlat / = 2; };

צפה בהדגמה כולה כדי לראות את הקוד במלואו. התרחשתי בפונקציה באתר זה שבו יש לו מספר שכבות של מעגלים במפה אחת עם אזורים מוצלים.