אם גם אתם שואלים את עצמכם מה זה mbtiles ? למה צריך את זה בכלל? מי משתמש בזה? ואיך לעזאזל מכינים את הקובץ? המדריך הקרוב ינסה לעשות קצת סדר ולתת קצת טיפים..

הקדמה

פורמט mbtiles הינו  קובץ דחוס שמכיל "אריחים" (tiles) וקטורים או רסטרים שמאפשר איחסון של מידע בצורה קומפקטית ומינימלית, mapbox פיתחו את הפורמט וכמובן שניתן להשתמש בו בצורה מיטיבית בפלפורמות השונות שלהם .

הקובץ מכיל מידע גיאוגרפי שנשמר  בבסיס נתונים SQLite לצורך שימוש מהיר ויעיל בנתונים בפלטפורמות שונות.

כאמור ניתן לבנות mbtiles  של מידע וקטורי (Vector Tile שזה אולי אחד הפורמטים הטובים והמהירים ביותר להצגת מידע ועל זה ארחיב בפעם אחרת) אולם המדריך הזה יעסוק רק במידע רסטרי. זה לא אומר שהמידע שממנו בנינו את הקובץ הוא רסטרי אלא הקובץ עצמו מכיל מידע רסטרי.

במילים אחרות קובץ mbtiles  בדומה "לקאש" של ESRI מציג "אריחים" של תמונות לצורך הצגה מהירה ברמות קנ"מ שונות של מפות בסיס ללא אפשרות לביצוע שאילותות וחישובים על השכבות, כאשר המידע נשמר במבנה כזה שכל רמת קנ"מ מחולקת לגריד של עמודות ושורות וכל "אריח" מייצג את רמת הקנ"מ ה – X וה -Y כאשר ככל שרמת הקנ"מ גדולה יותר ישנים יותר אריחים.

ישנם כמובן שימושים שונים ופלטפורמות שונות לשימוש ב mbtiles כאשר השימוש העיקרי הוא לאפלקציות mobile ו web.

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

מבנה, הגבלות, שימושים ועוד

ישנם כמה גרסאות של mbtiles ויש שינויים קלים בין הגרסאות, להרחבה כדאי לקרוא כאן 

mbtiles יכול להכיל רק קבצי png, jpg.

mbtiles תומך רק בהיטל של WGS 84 ולכן חשוב מאוד לוודא שאנחנו בהיטל הנכון

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

ישנם לא מעט ישומים להצגת/יצירה של mbtiles בכלים שונים ובשפות שונות ניתן לראות רשימה של יישומים כאן

יצירת mbtiles  ב QGIS

הדרך הפשוטה ביותר ליצור mbtiles  הינה דרך התוסף QTiles באמצעות התוסף ניתן ליצור בקלות mbtiles ברמות קנ"מ שונות

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

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

כדאי לשחק עם זה קצת ברמות קנ"מ גבוהות כדי לעשות ניסויים בזמן קצר (למשל כאשר בוחרים ליצור תיקייה ניתן גם ליצור קובץ leaflet שנפתח בדפדפן עם כל המפת בסיס שיצרנו)

בתחתית הפלאגין יש לנו סטאטוס בר שמראה לנו את התקדמות התהליך.

במידה והקובץ עומד להכין יותר מ 10000 אריחים נקבל התרעה אם נרצה להמשיך.

הפלאגין עושה את העבודה בצורה טובה ונוחה אבל החיסרון העיקרי שלו שלוקח המון זמן ליצור קובץ ברמות קנ"מ נמוכות (19 ומטה) למשל קובץ ברמת קנ"מ 21 (1:282) בשטח של העיר פתח תקווה לקח כמה ימים ולכן עברתי לשיטת עבודה חלופית.

יצירת TPK ב Arcmap  והמרה ל mbtiles

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

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

TPK –   מסתבר שיש לנו בארקמפ אפשרות ליצור קובץ של קאש בדומה ל mbtiles כך  שהקובץ מכיל סט של טיילים ברמות קנ"מ שונות ומה שנשאר לנו לעשות זה להמיר את קובץ ה tpk ל mbtiles.

שיטת העבודה אם כן היא כזאת:

  1. בניית MXD עם כל השכבות סימבולוגיות לייבלים וכו'
  2. יצירת TPK
  3. המרת TPK ל Mbtiles
יצירת TPK

אחרי שסיימנו לבנות את  ה MXD נרצה לייצר TPK.

יש כמה דרכים לעשות את זה או דרך כלי ב Toolbox  או דרך Sharing וממש עם כתיבת הפוסט ראיתי שיש כלי חדש שניתן להורדה בחינם שמאפשר ליצור TPK ממפות באונליין (ניתן להורדה מכאן)

כמה דגשים לגבי יצירת TPK 

  • בניגוד לבניית קאש רגילה שניתן לבחור מאיזה קנ"מ עד איזה קנ"מ נבנה את הקאש כאן אנחנו מתחילים תמיד מרמת זום 0 ובוחרים את הרמה המקסימלית כך שייתכן שיש רמות שנבנות סתם, אח"כ שנמיר ל mbtiles נוכל לבחור איזה רמות קנ"מ לבנות.

(ישנה אפשרות לבנות סכמת XML של רמות קנ"מ שונות בצורה ידנית ולהשתמש בה ואז רמת קנ"מ 0 תהיה מה שאנחנו נגדיר ולא הסטנדרט – לא בדקתי אבל לדעתי יכולה להיות בעיה אח"כ עם השכבה)

  • אם אין לכם בדיפולט רמות קנ"מ מעבר ל 19 תבחרו ליצור רמות קנ"מ מתוך סרוויס קיים ופשוט תתחברו לסרוויס של המפות רקע של האונליין (https://services.arcgisonline.com/ArcGIS/services)
  • שימו לב שבזמן ש TPK נוצר אז בניתוב שבו שמרתם את הקובץ תהיה תיקייה עם השם של ה TPK ששמרתם שבה בעצם נבנים הקבצים ונשמרים בתצורה דומה לקאש הרגיל, לאחר סיום התהליך התקייה הזאת תמחק ובמקומה יווצר הקובץ , אז אם אתם רוצים להעתיק את קבצי הקונפגורציה הושנים אתם יכולים בזמן שהקובץ נוצר.

המרת TPK ל mbtiles

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

הספריה מותאמת רק לפייתון 3.5 ומעלה וצריך להתקין אותה באמצעות git

את הספרייה נתקין מכאן:

https://github.com/consbio/tpkutils

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

ההמרה עצמה מהירה יחסית (שניות עד דקות לקובץ של 1GB)

אפשר בהמרה לבחור את רמות הקנ"מ הרצויות

from tpkutils import TPK

tpk = TPK('my_tiles.tpk') tpk.to_mbtiles('fewer_tiles.mbtiles', zoom=[0,1,2,3,4])

 

אולי גם זה יעניין אותך?

תגובה אחת
  1. אוזבקי סורר הגב

    אחד המדריכים אם לא "ה"! תודה!

השארת תגובה