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

צילום מסך 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; };

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

מה אתה חושב?

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