یک ظاهر طراحی پیچیده برای LineStrings با DrawOrder

جاش لیونی، تیم Google Geo APIs
دسامبر 2010

هدف

این آموزش شما را با چند عنصر KML جدید معرفی شده با Google Earth 6.0 آشنا می کند و اینکه چگونه می توان از آنها برای ایجاد کارتوگرافی پیچیده برای LineStyles خود استفاده کرد. عناصری که در مورد آنها خواهید آموخت عبارتند از <gx:physicalWidth> ، <gx:outerColor> ، <gx:outerWidth> و <gx:drawOrder> .

مقدمه

قبل از انتشار Google Earth 6.0، شما در توانایی آنها برای تعریف سبک های نقشه برداری پیچیده برای LineStrings محدود بودید. به عنوان مثال، اگر می‌خواهید یک سبک برای جاده‌ای ایجاد کنید، جایی که مرکز LineString رنگ متفاوتی با لبه‌ها دارد، باید دو LineString مجزا با عرض‌های مختلف بکشید، و حتی در آن صورت نمی‌توانید ترتیبی که آنها ترسیم می‌کنند را تضمین کنید.

مثال‌های زیر در ایجاد یک جاده قدم می‌زنند. اول، جاده یک سبک ساده خواهد داشت. سپس یک پیاده رو اضافه خواهید کرد. در نهایت، یک روگذر بزرگراه اضافه می کنید.

یک جاده اساسی

اولین عنصر مورد علاقه <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 متر تعیین شده بود، مقدار 0.25 برای عرض بیرونی به این معنی است که 3 متر از آن عرض به رنگ سبز روشن تر (حدود 1.5 متر در هر طرف جاده) تنظیم می شود.

یک روگذر بزرگراه

اکنون که یک جاده ابتدایی دارید، وقت آن است که به یک پل روگذر بزرگراه بپردازید. این رنگ به رنگ نارنجی روشن با خط وسط نارنجی تیره تر خواهد بود. نکته کلیدی در اینجا گنجاندن یک <gx:drawOrder> از 1 (پیش‌فرض 0 است) در <LineSring> برای اطمینان از نمایش بزرگراه در بالای جاده است. اگر در حال ساخت یک تبادل بزرگراه پیچیده‌تر هستید (یا هر نقشه‌برداری که به بیش از دو LineStrings همپوشانی نیاز دارد)، به سادگی می‌توانید مقدار بالاتری را به <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>

بعدش چی؟

توانایی توصیف یک LineString منفرد با چندین رنگ، همراه با کنترل بر ترتیب رندر، به شما امکان می دهد نقشه نگاری خط پیچیده ای ایجاد کنید که قبلاً امکان پذیر نبود. چه در حال ساختن یک پل روگذر بزرگراهی یا یک پروژه هنری انتزاعی هستید، با این قوانین سبک سازی لذت ببرید!