עיצוב מורכב למחרוזות קו עם DrawOrder

ג'וש ליבני, צוות Google Geo APIs
דצמבר 2010

מטרה

מדריך זה מציג כמה רכיבי KML חדשים שהושקו באמצעות Google Earth 6.0, וכיצד ניתן להשתמש בהם ליצירת קרטוגרפיה מורכבת עבור LineStyle. נלמד על הרכיבים <gx:physicalWidth>, <gx:outerColor>, <gx:outerWidth> וגם <gx:drawOrder>.

מבוא

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

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

דרך בסיסית

הרכיב הראשון שמעניין אותך הוא <gx:physicalWidth>, שמאפשר לך להגדיר את הרוחב של LineLine כך שיהיה במטרים, ולא בפיקסלים. אם נשתמש בדוגמה של הדרך, תוכל להגדיר את רוחב הדרך כך שיתאים לתמונות הבסיסיות ללא קשר לגובה שמשתמש הקצה צופה בכביש. עם הגבהה, הכביש פוחת בפיקסלים, וכך נוצר אפקט שבו ניתן לראות את ה-LineString רק כשמגדילים את התצוגה. האפשרות הזו יכולה להיות שימושית אם אתם לא רוצים להדגיש כבישים קטנים ממרחקים או אם אתם רוצים לוודא שהקרטוגרפיה שלכם תואמת לתמונות הלוויין כל הזמן.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>12</gx:physicalWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street</styleUrl>
    <LineString>
      <coordinates>
      -122.2442883478408,37.4347536724074,0
      -122.2417741446485,37.43594997501623,0
      -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

כשמשנים את גובה המצלמה ב-Google Earth, חשוב לשים לב לאופן שבו היא תואמת תמיד לרוחב של תמונות הבסיס.

הוספת מדרכות

עכשיו אפשר להוסיף את הרכיבים <gx:outerColor> ו-<gx:outerWidth> על ידי הוספת ירוק בהיר לקצוות הכביש כדי לציין מדרכות. מגדירים ש-25% מסך כל הפיקסלים של הכביש יופיעו באפור בהיר.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street_sidewalk">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>12</gx:physicalWidth>
      <gx:outerColor>ff55ff55</gx:outerColor>
      <gx:outerWidth>0.25</gx:outerWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street_sidewalk</styleUrl>
    <LineString>
      <coordinates>
      -122.2442883478408,37.4347536724074,0
      -122.2417741446485,37.43594997501623,0
      -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

מאחר שרוחב הכביש הוגדר ל-12 מטרים, הערך של 0 .25 עבור הרוחב החיצוני פירושו ש-3 מטרים מהרוחב הזה יוגדרו לירוק בהיר יותר (כ-1.5 מטרים בכל צד של הכביש).

כביש מהיר

עכשיו כשיש לכם כביש בסיסי, הגיע הזמן להתמודד עם כביש עילי. צבע זה יהיה כתום בהיר עם קו חציוני של כתום כהה יותר. המפתח העיקרי כאן הוא לכלול <gx:drawOrder> של 1 (ברירת המחדל היא 0) ב<LineSring> כדי לוודא שהכביש המהיר יוצג בראש הכביש. אם ברצונך ליצור החלפה מורכבת יותר של כביש מהיר (או כל מיפוי בצורה שבה נדרשו יותר משתי מחרוזות Linestring חופפות), אפשר פשוט להוסיף ערך גבוה יותר ל-<gx:drawOrder> עבור הישות שברצונך להציג בחלק העליון.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street_sidewalk">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>10</gx:physicalWidth>
      <gx:outerColor>ff55ff55</gx:outerColor>
      <gx:outerWidth>0.25</gx:outerWidth>
    </LineStyle>
  </Style>
  <Style id="highway">
    <LineStyle>
      <color>cc1447ff</color>
      <gx:physicalWidth>20</gx:physicalWidth>
      <gx:outerColor>cc1473ff</gx:outerColor>
      <gx:outerWidth>0.75</gx:outerWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street_sidewalk</styleUrl>
    <LineString>
      <coordinates>
     -122.2442883478408,37.4347536724074,0
     -122.2417741446485,37.43594997501623,0
     -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
  <Placemark>
    <styleUrl>#highway</styleUrl>
    <LineString>
    <gx:drawOrder>1</gx:drawOrder>
    <coordinates>
      -122.2442692500139,37.43634904345254,0
      -122.2415928723012,37.43416417520744,0
    </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

המאמרים הבאים

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