יצירה של Vector Tile באמצעות ArcGIS Pro
השימוש ב-Vector Tiles מהווה היום את הפיתרון המועדף ליצירת מפות רקע המבוססות על שכבות וקטוריות. בעבר, כאשר היינו מעוניינים להציג שכבות וקטוריות רבות כמפת בסיס, הפיתרון היה יצירת Tile Cache. יצירת ה- Cache נועדה לשמור על ביצועים ולתמוך בפרויקט מורכב מבחינה קרטוגרפית.
כאשר יוצרים Tile Cache נוצרת כמות גדולה מאד של אריחים, קבצי תמונה, מסוג JPG או PNG, על פי סכמת רמות קנ"מ שאנו מגדירים, ולפי תיחום של אזור ורשת קואורדינטות ספציפיים. תהליך יצירת הקאש הוא ארוך, והתוצר הסופי בעל נפח רב (עשרות ומאות GB למפות בקנ"מ גדול). המכשירים הסלולריים של היום תומכים ברזולוציות מסך גבוהות, ותצוגת ה-Tile Cache (אשר מבוסס על רסטרים) אינה חדה מספיק.
לכן הבחירה ב- Vector Tiles ליצירת מפות רקע היא נכונה ויש לה יתרונות רבים:
- נפח קטן מאד
- זמן יצירה קצר
- תצוגה חדה וברורה בכל המכשירים
- יכולת שינוי תצוגה (Style) מהירה
ESRI הטמיעה טכנולוגיה קיימת, המאפשרת לדחוס נתונים, על מנת שנוכל להשתמש בתצוגה וקטורית איכותית במקום ב-tile cache. כאשר מייצרים Vector Tiles מבוצע תהליך הכללה על הנתונים, לצורך שיפור הביצועים ואיכות התצוגה. ה-Vector tiles עושה שימוש ביכולות התצוגה של המכשירים הניידים ודפדפני האינטרנט ובכך ניתן להציג אותו בצורה מיטבית בפלטפורמות ובמכשירים השונים.
ניתן לייצר Vector Tiles בכל רשת קואורדינטות. לרוב אנחנו משתמשים ב-Web Mercator, כדי שנוכל להשתמש במפות ב-ArcGIS Online יחד עם מפות הבסיס של ESRI, אבל ניתן גם ליצור ברשתות אחרות, כולל ברשת ישראל החדשה במידת הצורך.
חשוב לציין שיצירה של Vector Tiles לא מחליפה תהליך יצירת Tile Cache מאורתופוטו או מפות סרוקות, ומי שמעוניין ללמוד עוד על תהליך של יצירת Tile Cache מוזמן לקרוא בבלוג בנושא יצירת Cache לאורתופוטו ארצי
ב–ArcGIS PRO שנמצא באתר שלנו.
בכדי להדגים את זמן היצירה הקצר של Vector Tiles נשווה את זמן יצירה של פרויקט ארצי, מבוסס נתוני חברת מפה, בשתי הטכנולוגיות, עד קנ"מ של 1:1250. יצירה של קאש וקטורי על מחשב חזק של 16 ליבות ו-64 GB RAM לוקחת כ-4 שעות ונפח ה-Tile Cache יהיה בין חמישה לעשרה GB. לעומת זאת, בכדי לייצר Vector Tiles אין צורך במחשב חזק. זמן היצירה של Vector tiles לא יעלה על מספר דקות על כל מחשב שתומך בדרישות התוכנה של ArcGIS Pro. הנפח של Vector tiles ארצי הוא כ-40 עד 50 MB.
זמן היצירה הקצר והנפח הקטן של קבצים אלו מאפשרים לנו ליצור Vector Tiles במהירות ולתקן את הקבצים באופן מיידי, במידת הצורך. בנוסף, אם נרצה לפרסם את התוצר ArcGIS Online, Hosted Tile Cahe בודד בנפח של 10 ג'יגה יצרוך כ- 144 קרדיטים, בעוד Vector Tiles בנפח של 40 מגה בייט יצרוך פחות מקרדיט בודד לשנה שלמה.
בדוגמא נוספת נסתכל על תהליך בניית ה-Tile Cache העולמי של ESRI. זמן הבנייה של ה-Tile Cache העולמי ארך מספר שבועות, על אשכול שרתים חזקים מאוד בענן, ובמשקל סופי עצום של כ20 TB. הבנייה של ה-Vector Tiles העולמי ארכה 8 שעות בלבד. ה-Vector tiles שוקל 13 GB והוא נבנה על מחשב אישי. מדובר בפערים משמעותיים. הטכנולוגיה של יצירת Vector Tiles מאפשרת לכל אחד לייצר מפות בסיס משלו, בכל קנה מידה וללא צורך בהחזקה של שרתים או מחשבים חזקים במיוחד.
חשוב לציין שבכדי ליצור Vector Tiles לא משתמשים בפרויקט שיצרנו עבור בניית Tile Cache. כאשר יוצרים פרויקט שמיועד לבניית Tile Cache יש צורך להכפיל שכבות, בכדי להציג אותם בצורה שונה לפי רמות קנה מידה מסוימות. ביצירת Vector Tiles אין צורך להכפיל שכבות. ניתן להשתמש בכלים השונים של ArcGIS Pro על מנת להציג שכבות בצורה ובעיצוב שונה לפי רמות קנה מידה משתנות. כמו כן, הבניה של Vector Tiles נעשית באמצעות סימבולוגיה פשוטה ומנוע תוויות פשוט.
הכלים ליצירת Vector tiles בArcGIS Pro
Scale-based symbol classes
כלי המאפשר להגדיר סימבולוגיה וטווחי התצוגה נפרדים לערכים ייחודיים בתוך אותה שכבה.
כלי זה מונע את הצורך בשכפול של שכבות. אחרת, היינו צריכים לשכפל את השכבה מספר פעמים וכל הנתונים היו מוזנים לVector Tiles מספר פעמים, מה שהיה מגדיל את נפח השכבה, והיתה נדרשת תחזוקה ועבודה נפרדת על כל שכבה.
Symbol Layer Drawing
לעיתים נעשה שימוש בסימבולוגיה המורכבת ממספר שכבות עיצוב. סימבולוגיה זו היא דרך לייצר אפקטים גרפים כמו גבולות של ישויות או צלליות. עם זאת, בעיקר בשכבות קוויות, זה יוצר מצב שבו אין רציפות בין ישויות מאותה שכבה, וכל ישות נראית כמקטע בודד ולא כקו אחד רציף. כלי הSymbol Layer Drawing מאפשר לנו לפתור את הבעיה הזו על ידי הגדרת סדר השכבות המצוירות על המפה. כאשר מציירים את שכבות העיצוב המשמשות כרקע ולאחר מכן את שכבות הסימול המרכזיות מתקבל האפקט של שכבה אחת. בנוסף, כאשר מגדירים קבוצת יישויות (Group Layers) בפרויקט, ניתן להגדיר את אופן החיבור בין אותן שכבות.
Scale-Based Sizing
כלי המגדיר את גודל הסמל של ישות לפי כל רמת קנה מידה בנפרד. בכדי לשמור על הפרופורציות של השכבה ביחס למציאות, יש צורך להגדיר את הגודל והעובי של שכבות בכל קנה מידה בנפרד.
למשל בדוגמא של שכבות הכבישים, בכדי לא להעמיס על המפה וכדי להתאים את עובי הקו למצב במציאות, בקנה מידה קטן מגדירים עובי קו קטן יחסית וככל שמתקדמים ברמות קנה המידה כך מעבים את סמל הקו לכבישים.
Display Filter
כלי המאפשר להציג ערכים ספציפיים בתוך השכבה, לפי רמות קנה מידה, על ידי שימוש בשאילתות פשוטות. השאילתות מוגדרות בתוך טווח רמות קנה מידה אותו ניתן להגדיר ולשנות, כאשר מעבר לטווח זה השכבה תוצג במלואה. ניתן להגדיר מספר שאילתות לאותה שכבה ולפי רמות קנה מידה שונות. זה מאפשר לנו לצמצם ישויות על המפה בקנה מידה קטן ומונע גם כן את הצורך בהכפלה של שכבות. כמו כן, ניתן להשתמש בכלי לצורך הדגשה של נתונים.
יצירת Vector Tiles בArcGIS Pro:
הדרך הראשונה ליצור את הVector tiles היא באמצעות הכלי Create Vector Tile Package. כלי זה מייצר את הקובץ מקומית על המחשב. הוא מאפשר לנו ליצור Vector tiles ללא הגבלה של גודל.
דרך נוספת היא באמצעות שיתוף ישירות לפורטל או לArcGIS Online. כאשר משתפים את מפת הפרויקט כולה כweb layer, יש לנו אפשרות ליצור ממנה Vector Tiles. יש צורך להגדיר שם, תיאור ותיוגים, ובחלונית Layer type לבחור Vector Tiles. לאחר מכן ניגשים לחלונית הקונפיגורציה ומגדירים את סכמת ורמות קנה המידה בה אנו מעוניינים לבנות את הVector Tiles. ניתן לפרסם בדרך זו כל עוד גודל הVector Tiles הסופי לא עולה על 2 GB.
בדומה ל Tile Cache, את ה Vector Tiles אנו צריכים לבנות לפי סכמת רמות קנ"מ כל שהיא. שימוש בסכמת ברירת המחדל של ArcGIS Online תצריך פרויקט במערכת קואורדינטות של WGS84 Web Mercator. כפי שציינו בהתחלה, ניתן לבנות Vector Tiles בכל מערכת קואורדינטות. עם זאת, יצירה של סכמה ברשת קואורדינטות שונה תצריך מספר פרמטרים כגון גודל אריח של 512 על 512, סכמת רמות קנ"מ בכפולות של שתיים ועוד.
>> הקליקו כאן למידע נוסף על הפרמטרים ליצירת VectorTiles ברשת קואורדינטות מותאמת אישית.
יצירה של Vector Tiles יוצרת קובץ מסוג VTPK (Vector Tiles Package). לשימוש ב-VTPK, יש יתרונות רבים. אחד היתרונות הוא האפשרות לעדכן ולשנות את העיצוב של קבצי VectorTiles באמצעות כלים מובנים של ESRI או באופן ידני.
את קובץ ה VTPK המיוצר בתוכנת ArcGIS Pro, ניתן לפרסם לArcGIS Online. הפרסום יכול להתבצע בשתי דרכים:
- שימוש בGP Tool – Share Package
- הוספה ידנית של ה-VTPK לArcGIS Online באמצעות כפתור "הוסף פריט" באזור התכולה
לאחר פרסום ה- VTPK, ניתן ליצור ממנו מספר רב של עיצובים שונים באמצעות הArcGIS Vector Tiles style Editor. זהו אתר חינמי ופתוח לכל מי שמחזיק ברישיון ל-ArcGIS Online. לאתר מתחברים באמצעות שם המשתמש והסיסמא לאונליין או הפורטל. הכלי מאפשר לעצב את הVector Tiles גם לפי שכבות הפרויקט וגם לפי הצבעים מהם עיצבנו את המפה. בנוסף, יש אפשרות להדליק ולכבות שכבות, מבלי לפגוע בתוכן המקורי של הVector Tiles ובניגוד ל-Tile Cache רגיל, שם אין לנו אפשרות שליטה על תצוגת השכבות לאחר היצירה. את העיצובים ניתן לשמור כעיצוב חדש או להחליף עיצוב קיים.
הכלי תומך ומאפשר לעצב גם את מפות הבסיס של ArcGIS Online וגם את המפות הוקטוריות שנוצרות בArcGIS Pro.
את העיצובים הללו ניתן לשמור כעיצוב חדש או להחליף עיצוב קיים. במידה ורוצים לייצר עיצוב חדש, צריך לשמור את העיצוב בעותק נוסף המאוחסן בחשבון ה-ArcGIS Online שלנו, באמצעות כפתור 'שמירה בשם'.
לאחר יצירת עיצוב חדש, יש אפשרות לעדכן את העיצוב שנמצא לנו בקובץ ה-VTPK המאוחסן מקומית על המחשב. בכדי להבין כיצד עושים זאת, חשוב להבין את המבנה של קובץ ה-Vector Tiles.
קובץ VTPK הוא למעשה אוסף של קבצי json המכילים מאפיינים ורכיבים שונים של הVector Tiles. קבצי הjson כוללים:
- Tiles – אריחים. בניגוד ל-Cache, כאן לא מיוצרים אריחי תמונה רסטריים רבים בכל רמת קנ"מ. ב-Vector tiles נוצרים אריחי תצוגה המאפשרים לטעון רק את השכבות הוקטוריות הנמצאות בתוך אותו אריח.
- Style – הקובץ האחראי על המראה החזותי של המפה: אילו נתונים לצייר, סדר הציור שלהם ואיך לעצב את הנתונים בעת ציורם. זהו קובץ JSON עם הגדרה לפי רמות קנ"מ ומאפיינים של כל שכבה.
- Sprites – מכיל את התמונות והסמלים שמשמשים לתצוגה בשכבות השונות.
- Fonts – כל הגופנים בהם אנו עושים שימוש בתוויות. הפונטים האלו צריכים להיות פתוחים לציבור הרחב ולכן אין אפשרות להשתמש בכל פונט שהוא אלא בסט הפונטים של ESRI שיורחב בעתיד.
כאשר אנו יוצרים עיצוב חדש באתר Vector Tile Style Editor, אנחנו יכולים להוריד את קובץ העיצוב שיצרנו ולשמור אותו במקום קובץ הstyle'שאחראי על עיצוב ה-Vector Tile שעל המחשב שלנו.
ראשית צריך להוריד את קובץ ה-Style שיצרנו באמצעות כפתור ההורדה בפלטפורמת ה- Vector tile Style Editor
הקובץ ירד אל תיקיית הורדות במחשב. הקובץ הוא מסוג JSON ונקרא בשם העותק שיצרנו לVector Tile. כדי שהוא יוכל לשמש כקובץ עיצוב תקין, נדרש לשנות לו את השם ל-root.
כעת נכנס אל קובץ ה-JSON. בשורות הראשונות שלו אנחנו נראה את ההפניה למיקום הרכיבים של ה-Vector Tile. הפניה זו מאפשרת לקובץ העיצוב לקרוא את שאר הרכיבים – הפונטים, הסימולים ועוד. עם זאת, לאחר ההורדה של הקובץ מ-AGOL, ההפניה תציג לנו קישורים לנתיבים כפי שמוצג בתמונה:
על מנת שהמחשב יוכל לקרוא את הרכיבים בצורה נכונה, אנחנו צריכים לשנות את השורות המסומנות ולהוריד את ההפניה לנתיבים. מכיוון שמדובר בקוד, וכל סימן הוא חשוב, צריך להיות מאוד זהירים בשלב הזה. יש צורך להקפיד שמעתיקים את כל הקוד במלואו ומחליפים את כל סימני הפיסוק. לנוחיותכם, אני מצרף פה את הקוד אותו צריך להדביק במדויק במקום השורות המסומנות בתמונה הנ"ל:
יש לוודא שלאחר העדכון שמרנו את השינויים בקובץ ה-JSON.
כעת נשאר להחליף את קבצי העיצוב. ניגש לתיקייה המכילה את קובץ ה-vtpk על המחשב. על מנת לא לפגוע בעיצוב הקיים, אני ממליץ לייצר עותק של קובץ ה-vtpk ולא לפגוע בקובץ המקורי.
בכדי לחלץ את התוכן של ה-VTPK ולגשת את תיקיית העיצוב, יש ללחוץ על ה-vtpk במקש הימני בעכבר – שינוי שם ולהחליף את סיומת הקובץ מ-vtpk לzip.
את תכולת ה-zip צריך לחלץ באמצעות המקש הימני בעכבר על ה-zip ובחירה באפשרות Extract all (חלץ הכל).
כעת ניכנס לתיקיה שנוצרה וניגש לנתיב: \p12\resources\styles\
בתוך תיקיית ה-styles נראה את קובץ root.json אותו אנחנו מעוניינים להחליף. נעביר את קובץ העיצוב החדש אל התיקייה. המחשב אמור להציג אזהרה שקובץ זה כבר קיים. נבחר באופציה של החלפת הקובץ הקיים. לבסוף בתיקייה אמור להיות לנו קובץ root.json אחד בלבד.
השלב האחרון הוא לארוז את התיקיות מחדש לכדי קובץ vtpk. ניגש לתיקייה המכילה את תיקיות esriinfo ו-p12.
נסמן את שתי התיקיות האלו, נלחץ במקש הימני בעכבר ונבחר באופציה 7-zip והוסף אל ארכיון
בהגדרות שיפתחו נשנה את הסיומת של הקובץ המיועד מ-zip לvtpk ונשנה את רמת הדחיסה ל"אחסון". נלחץ על אישור וקובץ vtpk חדש עם עיצוב מעודכן ייווצר לנו.
את הקובץ הזה ניתן לטעון בתור ArcGIS Pro ולוודא שהוא מופיע בצורה תקינה וללא שגיאות.
לסיכום, לשימוש ב-Vector Tiles עבור מפות בסיס וקטוריות יש יתרונות רבים:
- זמן יצירה קצר ונפח קטן
- דינמיות בהצגת הנתונים (תוויות, כיבוי והדלקת שכבות)
- עיצובים רבים על שכבת נתונים אחת
חשוב לציין שהשימוש ב-Vector tiles לא נועד רק למפות בסיס. ניתן להשתמש ביכולת זו גם לצרכים נוספים. למשל, פרסום ל-ArcGIS Online של שכבה בנפח גדול יצרוך קרדיטים רבים. ניתן לייצר משכבה זו Vector Tiles, וכך משקלה יהיה קטן משמעותית ויהיה חסכון בקרדיטים. כמו כן, אם יש צורך לפרסם שכבות לתצוגה בלבד, ניתן לפרסם אותן כ-Vector Tiles וכך נחסמת אפשרות הורדת הנתונים שלהן.
למידע נוסף בנושא יצירה ועדכון של קבצי Vector Tile אתם מוזמנים לגשת לקישורים הבאים:
- בלוג בחמישה חלקים בנושא Customize ESRI Vector Basemaps – הקליקו כאן
- דגשים בארגון מפה המיועדת ליצירת Vector Tile – הקליקו כאן
אלעד, הצלחת לסקר ולתמצת את הנושא במאמר
מקצועי ומושקע שבוודאי יסייע לכל מי שירצה להתקדם למיפוי בטכנולוגיה החדשה.
תודה לך ויישר כח על העשייה והמקצוענות.
המון תודה ניר!
שלום,
במאמר כתוב שיש דינמיות בהצגת הנתונים (תוויות, כיבוי והדלקת שכבות). האם ניתן לכבות/להשליק שכבות כשמציגים VECTOR TILE באמצעות ARCGIS RUNTIME?
תודה.
שלום,
הכוונה היא בתהליך יצירת הVectorTile ולא בקובץ תוצר עצמו.
בעת היצירה ניתן לשלוט בקלות בשכבות שיוצגו בVectorTile, וכן הצגת התווית ובסימבולוגיה של כל שכבה
בברכה,
אלעד רוטמן
איש GIS
סיסטמטיקס טכנולוגיות ר.ג. בע"מ