سوالات متداول KML


KML چیست؟

KML فرمت فایلی است که برای نمایش داده های جغرافیایی در مرورگر Earth مانند Google Earth استفاده می شود. می‌توانید فایل‌های KML ایجاد کنید تا مکان‌ها را مشخص کنید، پوشش‌های تصویر اضافه کنید و داده‌های غنی را به روش‌های جدید در معرض دید قرار دهید. KML یک استاندارد بین المللی است که توسط کنسرسیوم فضایی باز، شرکت (OGC) نگهداری می شود.

چه کسی از KML استفاده می کند؟

جامعه KML گسترده و متنوع است، همانطور که هنگام بازدید از انجمن انجمن Google Earth خواهید دید. کاربران معمولی فایل‌های KML ایجاد می‌کنند تا خانه‌های خود را علامت‌گذاری کنند، سفرها را مستند کنند و برای پیاده‌روی‌های بین‌المللی و دوچرخه‌سواری برنامه‌ریزی کنند. دانشمندان از KML برای تهیه نقشه های دقیق از منابع، مدل ها و روندهایی مانند فوران های آتشفشانی، الگوهای آب و هوا، فعالیت های زلزله و ذخایر معدنی استفاده می کنند. متخصصان املاک، معماران و آژانس های توسعه شهر از KML برای پیشنهاد ساخت و ساز و تجسم طرح ها استفاده می کنند. دانش‌آموزان و معلمان از KML برای کشف افراد، مکان‌ها و رویدادها، چه تاریخی و چه فعلی، استفاده می‌کنند. سازمان هایی مانند نشنال جئوگرافیک، یونسکو و اسمیتسونین همگی از KML برای نمایش مجموعه های غنی از داده های جهانی خود استفاده کرده اند.

چگونه فایل های KML ایجاد کنم؟

سه ابزار اصلی برای ایجاد فایل های KML وجود دارد.

  • گوگل ارث. این مهم ترین ابزاری است که می توانید برای ایجاد فایل های KML از آن استفاده کنید. با استفاده از Google Earth، می توانید ایجاد کنید
    • مکان‌ها
    • راه ها
    • چند ضلعی ها
    • پوشش های تصویر
    • لینک های شبکه
    • مدل های مکان
    • پوشه های تمام موارد بالا
    • پوشش های عکس
  • هنگامی که یکی از این اشیاء را ایجاد کردید، بر روی آن در قسمت "Places" کلیک راست کرده و "Copy" را انتخاب کنید. سپس می توانید در یک ویرایشگر متن یا یک ویرایشگر XML جایگذاری کنید و شروع به ویرایش کنید.

  • ویرایشگر متن پس از ایجاد یک شی در Google Earth، آن را در یک ویرایشگر متن قرار دهید و شروع به ویرایش کنید.
  • ویرایشگر XML. KML یک زبان XML برای توصیف محتوای جغرافیایی است. یک ویرایشگر XML یک ویرایشگر متن فانتزی است که ابزارهای زیادی را برای ایجاد اسناد XML، مانند تکمیل برچسب، در اختیار شما می‌گذارد، که اطمینان حاصل می‌کند که عناصر KML خود را با برچسب‌های نزدیک مناسب می‌بندید.

همچنین ابزارهای زیادی توسط کاربران در انجمن Google Earth ایجاد شده است. گروه Google پشتیبانی از توسعه دهندگان KML را بررسی کنید .

چگونه یک فایل KMZ را باز کنم؟

فایل‌های KMZ مجموعه‌ای فشرده از یک یا چند فایل برای مشاهده در Google Earth هستند. آنها با استفاده از فرمت zip فشرده می شوند و می توانند با استفاده از هر ابزار zip معمولی مانند "WinZip"، "7-Zip" یا ابزار پیش فرض پوشه های فشرده ویندوز XP - برای Windows، "Stuffit" - برای Mac باز شوند. OS یا "zip"--برای Mac OS یا Linux. ممکن است لازم باشد پسوند فایل را از .kmz به .zip تغییر دهید تا فایل توسط یک ابزار zip شناسایی شود. به یاد داشته باشید که قبل از استفاده مجدد از فایل، به .kmz برگردید.

چگونه KML را برای داده های نجوم ایجاد کنم؟

KML می تواند برای نمایش داده های نجومی استفاده شود و در Google Sky یا تلسکوپ جهانی مایکروسافت بارگذاری شود. برای اطلاعات بیشتر، مقاله Sky Data در KML را بررسی کنید.

کدام برچسب های KML توسط Google Earth پشتیبانی می شوند؟

همه برچسب‌های KML توسط Google Earth پشتیبانی می‌شوند. برای فهرستی از همه برچسب‌ها، مشخصات KML را ببینید.

کجا می توانم راهنمای برنامه نویس را پیدا کنم؟

راهنمای برنامه‌نویس را می‌توانید در https://developers.google.com/kml/documentation/topicsinkml.html پیدا کنید.


چرا خطوط من ناپدید می شوند؟

وقتی یک LineString دارای یک clampToGround باشد، منحنی کره زمین را بدون مشکل دنبال می کند. با این حال، اگر "relativeToGround" باشد، ممکن است لازم باشد نقاط بیشتری اضافه کنید در غیر این صورت خطوط طولانی تری را در یک مسیر مستقیم در سراسر جهان یا زمین ترسیم می کند.

به عنوان مثال، این LineString از زمین عبور می کند و به طور موثر ناپدید می شود:

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Untitled Path</name>
    <LineString>
      <tessellate>0</tessellate>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>-115.415105,40.669016 -37.752364,34.879979</coordinates>
    </LineString>
  </Placemark>
</kml>

افزودن نقاط بیشتر مقدار خطی را که در زیر زمین قرار دارد کاهش می دهد. <tessellate> همچنین باید "1" باشد تا مطمئن شوید که خط از زمین پیروی می کند.

<Placemark>
  <name>Untitled Path</name>
  <LineString>
    <tessellate>1</tessellate>
    <altitudeMode>relativeToGround</altitudeMode>
    <coordinates>
      -134.148103,37.752967 -128.917074,38.803008
      -125.166954,39.583592 -122.137625,39.656880
      -120.421783,40.036311 -118.298157,40.235316
      -114.348386,40.631532 -112.670431,40.761033
      -111.916045,40.681939 -110.177711,40.653055
      -109.544331,40.619327 -107.155697,40.642007
      -105.410526,40.421505 -103.192299,40.430138
      -102.853712,40.427904 -98.168302,40.363524
      -97.093391,40.308754 -94.831304,40.479175
      -93.760070,40.395392 -84.913828,39.466651
      -84.414888,39.387332 -81.380660,39.188551
      -80.276261,38.977744 -77.811560,38.872542
      -75.062267,38.521146 -72.006956,38.101733
      -66.67819,37.664687
    </coordinates>
  </LineString>
</Placemark>
آیا می توانم یک دایره در KML رسم کنم؟

هندسه دایره ای در KML وجود ندارد، با این حال می توانید چیزی بسیار نزدیک به دایره ها با استفاده از LineStrings با تعداد زیادی مختصات نزدیک به هم ایجاد کنید. در اینجا یک مثال است.

آیا می توانم یک LineString را به شکل خط تیره یا دارای فلش تغییر دهم؟

<LineStyle> به شما امکان می دهد رنگ، تیرگی و اندازه خطوط را تغییر دهید. با این حال، در این مرحله، KML از تغییر انواع خطوط در KML پشتیبانی نمی کند.

چگونه می توانم برچسب های Placemarks را پنهان کنم؟

برچسبی که در کنار علامت مکان در Google Earth نشان داده می شود بر اساس عنصر <name> است. با تنظیم عنصر مقیاس در LabelStyle روی 0، می توانید برچسب را پنهان کنید.

<Style id="hideLabel">
  <LabelStyle>
    <scale>0</scale>
  </LabelStyle>
</Style>
چرا با خطای تجزیه مواجه می شوم؟

دو دلیل اصلی برای خطاهای تجزیه وجود دارد:

  1. حروف کوچک و بزرگ: KML، مانند تمام زبان های XML، به حروف بزرگ و کوچک حساس است. این مستلزم آن است که نام تمام عناصر در حروف صحیح باشد. به عنوان مثال: <Placemark> نه <PLACEMARK> <href> نه <Href> <Link> نه <lInk>
  2. تگ های ناقص: همه عناصر باید با یک تگ شروع و ختم شوند. گاهی اوقات افراد فراموش می کنند که یک برچسب را ببندند، یا یک براکت زاویه را کنار بگذارند (< یا >)

    برای مثال:
    <name>آتلانتا</name> صحیح است
    <name> آتلانتا درست نیست
    <nameAtlanta</name> صحیح نیست
    <nameAtlanta<name> صحیح نیست

چگونه بفهمم فایل KML که نوشتم یک فایل KML معتبر است؟

KML یک زبان نشانه گذاری XML است. شما می توانید آن را به یکی از روش های مختلف تأیید کنید:

  • می توانید یک ویرایشگر XML، مانند Oxygen یا Netbeans دریافت کنید و از آنها برای اعتبارسنجی سند استفاده کنید. اسناد ویرایشگر XML مورد نظر خود را بررسی کنید. برای انجام اعتبارسنجی به طرح KML نیاز دارید.
  • می‌توانید با استفاده از اعتبارسنجی آنلاین، مانند FeedValidator.org یا Galdos' KML Validator ، آن را بررسی کنید، که خطاهایی را که مرتکب شده‌اید به شما نشان می‌دهد و چند پیشنهاد سبک نیز ارائه می‌دهد.
  • برخی از ویرایشگرهای متن به شما اجازه می دهند اعتبار سنجی XML را انجام دهید. به عنوان مثال، می توانید از jEdit برای اعتبارسنجی KML خود استفاده کنید. این آموزش را از تیم Google Earth Outreach بررسی کنید.
آیا راهی برای کنترل آنچه بر روی صفحه نمایش ظاهر می شود وجود دارد تا زمانی که کاربر به سطح زمین نزدیک تر است جزئیات بیشتری نشان داده شود؟

تگ Region برای کنترل ویژگی هایی که به کاربر نمایش می دهید استفاده می شود. بهترین منابع برای یافتن اطلاعات بیشتر در مورد مناطق هستند

آیا می توانم رنگ ها / سبک های مختلف را به هندسه های مختلف در یک عنصر MultiGeometry اختصاص دهم؟

عنصر MultiGeometry هندسه ها را در همان عنصر Placemark گروه بندی می کند. این به هندسه‌ها اجازه می‌دهد تا سبک یکسانی را به اشتراک بگذارند و به‌عنوان یک مورد در فهرستی مانند صفحه مکان‌های من در Google Earth ظاهر شوند.

سبک‌ها در سطح Placemark، یا با استفاده از یک عنصر styleUrl یا یک عنصر Style ، تنظیم می‌شوند. بنابراین، هندسه های فردی در آن Placemark نمی توانند سبک های متفاوتی داشته باشند.

راه حلی که اغلب مورد استفاده قرار می گیرد این است که برای هر هندسه یک Placemark جداگانه ایجاد کنید که به هر کدام اجازه می دهد سبک متفاوتی داشته باشد. برای جلوگیری از تکثیر موارد در یک لیست، آنها را در پوشه ای قرار دهید که دارای ListStyle با listItemType با checkHideChildren است. به عنوان مثال، در Google Earth، همه علامت‌های مکان را در یک عنصر پوشه در مکان‌های من قرار می‌دهد و از باز کردن آن برای نمایش تعداد زیادی عنصر جلوگیری می‌کند.


آیا می توانم هنگام باز کردن یک فایل KML یک بالون باز کنم؟

در این مرحله، KML از توانایی باز کردن بالون در هنگام باز شدن فایل KML پشتیبانی نمی‌کند. با این حال، اگر از لنگر ویژگی استفاده می‌کنید، می‌توانید پیوندی در یک بالون ایجاد کنید که فایل KML دوم یا بالون دیگری را باز می‌کند.

آیا می توانم یک بالون را هنگام رفرش کردن NetworkLink باز نگه دارم؟

در این مرحله، KML از حفظ وضعیت بالون در هنگام بازخوانی NetworkLink پشتیبانی نمی‌کند.

آیا می توانم KML ایجاد شده توسط کاربرانم را مشاهده کنم؟

در این مرحله نمی توانید از NetworkLink برای گرفتن KML ایجاد شده توسط کاربر در Google Earth یا Maps استفاده کنید. با این حال، می توانید از Google Maps JavaScript API به عنوان ابزار ایجاد KML استفاده کنید و آن اطلاعات را به سرور بازگردانید. برای مثال، GeoDataStore را ببینید.

آیا می توانم لغزنده زمان را از KML کنترل کنم؟

لغزنده زمان در KML به محض باز شدن یک فایل KML با عنصر TimeStamp یا TimeSpan باز می شود. نوار لغزنده زمان تمام عناصر TimeStamp و TimeSpan را که در حال حاضر انتخاب شده است را پیدا می کند و تنظیم می کند تا تمام تاریخ های نمایش داده شده را در خود جای دهد. KML در حال حاضر اجازه کنترل بیشتر روی نوار لغزنده زمان را نمی دهد، مانند تنظیم زمان فعلی انتخاب شده، یا انتخاب میزان بازنمایی یک بازه زمانی. برای اطلاعات بیشتر در مورد استفاده از زمان، مقاله زمان و انیمیشن را بررسی کنید.

چگونه می توانم تعاملی را در KML ایجاد کنم؟ آیا می توانم فرم ها را در HTML در بالن های توضیحات KML قرار دهم؟

در این مرحله، KML در Google Earth تنها از زیرمجموعه‌ای از HTML پشتیبانی می‌کند که ارائه را توصیف می‌کند، نه تعامل.

با این حال، می‌توانید فرم‌های Flash را در KML مورد استفاده در Google Earth بسازید. برای انجام این کار، یک برنامه فلش را در HTML در یک بالون توضیحات KML قرار دهید.


آیا می توانم KML را به طور خودکار از یک صفحه گسترده ایجاد کنم؟

چند راه اساسی برای انجام این کار وجود دارد.

  • خودتان این کار را به صورت برنامه نویسی انجام دهید، با استفاده از برنامه کاربردی خود یک فایل CSV را تجزیه کنید و از آن KML ایجاد کنید. برای مثال، تبدیل فایل‌های CSV به KML را بررسی کنید.
  • از یک صفحه گسترده آنلاین استفاده کنید. به عنوان مثال، تیم Google Earth Outreach یک Spreadsheet Mapper بر اساس Google Spreadsheets ایجاد کرده است.
  • از یکی از ابزارهای ایجاد اکسل به KML استفاده کنید، مانند [پیوند به موضوع تک] این یکی
  • از Google Earth Plus یا Pro برای بارگیری فایل ها و سپس ذخیره آنها به عنوان فایل های KML یا KMZ استفاده کنید
چرا فایل های KML من به درستی از سرور وب من دانلود نمی شوند؟

به سرورهای وب باید گفته شود که چه نوع فایل هایی را ارائه می کنند. برخی از مرورگرها، مانند فایرفاکس، نوع فایل را حدس می زنند. سایرین، مانند اینترنت اکسپلورر، به تنظیمات نوع MIME سرور وب متکی هستند.

برای سرور آپاچی، این دو خط را در httpd.conf قرار دهید:

AddType application/vnd.google-earth.kml+xml .kml
AddType application/vnd.google-earth.kmz .kmz

برای سرور اطلاعات اینترنتی مایکروسافت، این دستورالعمل ها را دنبال کنید:

IIS نسخه 6.0:

http://support.microsoft.com/kb/326965

IIS 4.0 و 5.0:

http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx

اگر وب سرور خود را مدیریت می کنید، باید پیکربندی خود را تغییر دهید. در غیر این صورت با سرویس میزبانی وب سایت خود تماس بگیرید و از آنها بخواهید این تغییرات را انجام دهند.


چرا محتوای بالون من می گوید که ممکن است از URL های تصویر با فرمت نادرست استفاده کند؟

تغییر اخیر در Google Earth نحوه پردازش پیوندها را برای محتوای درون یک بالون ویژگی تغییر می دهد تا رفتار نامشخص قبلی را واضح تر کند. در نتیجه، کلیک کردن روی پیوندی از داخل KMZ که دارای ساختار پیوند نامعتبر است، کاربران را به صفحه‌ای می‌برد که بیان می‌کند "پیوندی که شما را به اینجا ارسال کرده ممکن است به اشتباه قالب‌بندی شده باشد. روی پیوند زیر کلیک کنید تا از حالت قدیمی استفاده کنید." اگر این پیام را مشاهده کردید، باید ساختار محتوای KML/KMZ خود را تغییر دهید تا از سازگاری کامل با نسخه‌های آینده Google Earth اطمینان حاصل کنید.

برای اطلاعات بیشتر، از جمله جزئیات در مورد چگونگی بازسازی مناسب محتوای KMZ، به این مقاله مراجعه کنید.

چه محتوایی تحت تأثیر قوانین مسیر نسبی جدید قرار می گیرد؟

در حال حاضر، فقط پیوندها (URL) در محتوای بالون ویژگی تحت تأثیر این تغییر قرار می گیرند. این شامل تگ‌های <description> و <text> در داخل <BallonStyles>ها می‌شود. با این حال، نسخه‌های آینده Google Earth ممکن است به سمت سازگاری بیشتر حرکت کنند، بنابراین همیشه باید از استفاده از دایرکتوری والد به عنوان URL اصلی برای پیوند نسبی در محتوای KMZ اجتناب شود.


آیا KML در مکان‌های من در Google Earth به سرورهای Google ارسال می‌شود؟

خیر. KML ایجاد شده در Google Earth یا بارگیری شده در Google Earth توسط کاربر به Google ارسال نمی شود. تمام پردازش و ذخیره سازی آن داده ها در ماشین محلی انجام می شود.

بازگشت به بالا