التصميم المعقد لسلاسل الخطوط باستخدام DrawOrder

جوش ليفني، فريق Google Geo APIs
كانون الأول (ديسمبر) 2010

الغرض

يقدم هذا البرنامج التعليمي بعض عناصر KML الجديدة التي تم تقديمها مع Google Earth 6.0، وكيف يمكن استخدامها لإنشاء رسم خرائط معقد لـ LineStyles. العناصر التي ستتعرَّف عليها هي <gx:physicalWidth> و<gx:outerColor> و<gx:outerWidth> و<gx:drawOrder>.

المقدمة

قبل إصدار Google Earth 6.0، كنت مقيدًا في قدرتها على تحديد أنماط رسم خرائط معقدة لـ LineStrings. على سبيل المثال، إذا كنت ترغب في إنشاء نمط لطريق ما، حيث يكون للوسط الخطي لون مختلف عن حوافه، فيجب رسم سلسلتين منفصلتين بعرضين مختلفين، وحتى بعد ذلك لا يمكنك ضمان الترتيب الذي سيتم رسمه به.

توضّح الأمثلة التالية كيفية إنشاء طريق. أولاً، سيكون للطريق نمط بسيط. وبعد ذلك، ستضيف رصيفًا. أخيرًا، يجب إضافة ممر علوي للطريق السريع.

طريق أساسية

العنصر الأول محل الاهتمام هو <gx:physicalWidth>، الذي يسمح لك بضبط عرض LineString بحيث يكون بالأمتار، بدلاً من وحدات البكسل. في حالة مثال الطريق، يعني هذا أنه يمكنك تعيين عرض طريقنا لمطابقة الصور الأساسية بغض النظر عن الارتفاع الذي يطل عليه المستخدم النهائي للطريق. كلما حصلت على ارتفاع، تقل الطريق بوحدات البكسل، مما يؤدي إلى تأثير حيث لا يمكنك مشاهدة 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 مترًا، فإن القيمة 2 .25 للعرض الخارجي تعني تعيين 3 أمتار من هذا العرض إلى اللون الأخضر الفاتح (حوالي 1.5 متر على كل جانب من الطريق).

ممر علوي

والآن بعد أن أصبح لديك طريق أساسي، حان الوقت للتعامل مع ممر علوي للطرق السريعة. سيتم تلوين هذا الخط باللون البرتقالي الفاتح مع خط متوسط برتقالي داكن. الإضافة الأساسية هنا هي تضمين <gx:drawOrder> من 1 (القيمة التلقائية هي 0) في <LineSring> لضمان عرض الطريق السريعة أعلى الطريق. إذا كنت بصدد إنشاء تقاطع أكثر تعقيدًا للطرق السريعة (أو أي رسم بياني يتطلب أكثر من سلسلتي خطوط متداخلتين)، يمكنك ببساطة إضافة قيمة أعلى إلى <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>

ما هي الخطوات التالية؟

إن إمكانية وصف سلسلة خط واحدة بألوان متعددة، جنبًا إلى جنب مع التحكم في ترتيب العرض، تتيح لك إنشاء رسم بياني خطي معقد لم يكن ممكنًا في السابق. سواء كنت بصدد بناء ممر علوي لطريق سريع أو مشروع فني تجريدي، يمكنك الاستمتاع بقواعد التصميم هذه!