KML এবং GeoRSS স্তরসমূহ

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

KmlLayer KML এবং GeoRSS উপাদানকে একটি মানচিত্র জাভাস্ক্রিপ্ট এপিআই টাইল ওভারলেতে রেন্ডার করে।

ওভারভিউ

Maps JavaScript API ভৌগলিক তথ্য প্রদর্শনের জন্য KML এবং GeoRSS ডেটা বিন্যাস সমর্থন করে। এই ডেটা ফর্ম্যাটগুলি একটি KmlLayer অবজেক্ট ব্যবহার করে একটি মানচিত্রে প্রদর্শিত হয়, যার কনস্ট্রাক্টর একটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য KML বা GeoRSS ফাইলের URL নেয়৷

দ্রষ্টব্য: KmlLayer ক্লাস যা মানচিত্র জাভাস্ক্রিপ্ট API-এ KML ওভারলে তৈরি করে তা রেন্ডারিংয়ের জন্য KML ফাইলগুলি পুনরুদ্ধার এবং পার্স করতে একটি Google হোস্ট করা পরিষেবা ব্যবহার করে। ফলস্বরূপ, কেবলমাত্র KML ফাইলগুলি প্রদর্শন করা সম্ভব যদি সেগুলি সর্বজনীনভাবে অ্যাক্সেসযোগ্য URL এ হোস্ট করা হয় যাতে অ্যাক্সেসের জন্য প্রমাণীকরণের প্রয়োজন হয় না৷

আপনার যদি ব্যক্তিগত ফাইলগুলিতে অ্যাক্সেসের প্রয়োজন হয়, ক্যাশেগুলির উপর সূক্ষ্ম নিয়ন্ত্রণ বা ব্রাউজার ভিউপোর্টটি একটি জিওস্পেশিয়াল ডেটা সার্ভারে একটি কোয়েরি প্যারামিটার হিসাবে পাঠাতে হয়, আমরা KmlLayer এর পরিবর্তে ডেটা স্তরগুলি ব্যবহার করার পরামর্শ দিই। এটি আপনার ব্যবহারকারীদের ব্রাউজারগুলিকে সরাসরি আপনার ওয়েব সার্ভার থেকে সংস্থানগুলির অনুরোধ করতে নির্দেশ করবে৷

মানচিত্র জাভাস্ক্রিপ্ট API প্রদত্ত ভৌগলিক XML ডেটাকে একটি KML উপস্থাপনায় রূপান্তর করে যা একটি মানচিত্র জাভাস্ক্রিপ্ট API টাইল ওভারলে ব্যবহার করে মানচিত্রে প্রদর্শিত হয়৷ এই KML পরিচিত মানচিত্র জাভাস্ক্রিপ্ট API ওভারলে উপাদানের মত দেখায় (এবং কিছুটা আচরণ করে)। KML <Placemark> এবং GeoRSS point উপাদানগুলি মার্কার হিসাবে রেন্ডার করা হয়, উদাহরণস্বরূপ, <LineString> উপাদানগুলিকে পলিলাইন হিসাবে রেন্ডার করা হয় এবং <Polygon> উপাদানগুলিকে বহুভুজ হিসাবে রেন্ডার করা হয়৷ একইভাবে, <GroundOverlay> উপাদানগুলিকে মানচিত্রে আয়তক্ষেত্রাকার ছবি হিসাবে রেন্ডার করা হয়েছে। গুরুত্বপূর্ণভাবে, যাইহোক, এই বস্তুগুলি Maps JavaScript API Markers , Polylines , Polygons বা GroundOverlays নয় ; পরিবর্তে, তারা মানচিত্রে একটি একক বস্তুতে রেন্ডার করা হয়।

KmlLayer বস্তু একটি মানচিত্রে প্রদর্শিত হবে একবার তাদের map সম্পত্তি সেট করা হয়। আপনি setMap() passing null কল করে মানচিত্র থেকে তাদের সরাতে পারেন। KmlLayer অবজেক্ট ম্যাপের প্রদত্ত সীমার জন্য স্বয়ংক্রিয়ভাবে উপযুক্ত বৈশিষ্ট্য পুনরুদ্ধার করে এই শিশু উপাদানগুলির রেন্ডারিং পরিচালনা করে। সীমা পরিবর্তিত হওয়ার সাথে সাথে বর্তমান ভিউপোর্টের বৈশিষ্ট্যগুলি স্বয়ংক্রিয়ভাবে রেন্ডার করা হয়।

যেহেতু একটি KmlLayer এর মধ্যে উপাদানগুলি চাহিদা অনুযায়ী রেন্ডার করা হয়, লেয়ারটি আপনাকে সহজেই হাজার হাজার মার্কার, পলিলাইন এবং বহুভুজের রেন্ডারিং পরিচালনা করতে দেয়। মনে রাখবেন যে আপনি এই উপাদান বস্তুগুলিকে সরাসরি অ্যাক্সেস করতে পারবেন না, যদিও তারা প্রতিটি ক্লিক ইভেন্ট প্রদান করে যা সেই পৃথক বস্তুর ডেটা ফেরত দেয়।

KML স্তর বিকল্প

KmlLayer() কনস্ট্রাক্টর ঐচ্ছিকভাবে KmlLayerOptions একটি সংখ্যা পাস করে:

  • map KmlLayer রেন্ডার করার Map নির্দিষ্ট করে। আপনি setMap() পদ্ধতিতে এই মানটিকে null সেট করে একটি KmlLayer লুকাতে পারেন।
  • preserveViewport সুনির্দিষ্ট করে যে স্তরটি দেখানোর সময় মানচিত্রটি KmlLayer এর বিষয়বস্তুর সীমানার সাথে সামঞ্জস্য করা উচিত নয়। ডিফল্টরূপে, একটি KmlLayer প্রদর্শন করার সময়, মানচিত্রটি জুম করা হয় এবং স্তরটির সমস্ত বিষয়বস্তু দেখানোর জন্য অবস্থান করা হয়।
  • suppressInfoWindows নির্দেশ করে যে KmlLayer এর মধ্যে ক্লিকযোগ্য বৈশিষ্ট্যগুলি InfoWindow বস্তুর প্রদর্শনকে ট্রিগার করবে না।

অতিরিক্তভাবে, একবার KmlLayer রেন্ডার করা হলে, এটিতে একটি অপরিবর্তনীয় metadata বৈশিষ্ট্য রয়েছে যার মধ্যে লেয়ারের নাম, বর্ণনা, স্নিপেট এবং লেখক একটি KmlLayerMetadata অবজেক্ট আক্ষরিক। আপনি getMetadata() পদ্ধতি ব্যবহার করে এই তথ্য পরিদর্শন করতে পারেন। যেহেতু KmlLayer অবজেক্টের রেন্ডারিংয়ের জন্য একটি বহিরাগত সার্ভারের সাথে অ্যাসিঙ্ক্রোনাস যোগাযোগের প্রয়োজন, আপনি metadata_changed ইভেন্টের জন্য শুনতে চাইবেন, যা নির্দেশ করবে যে সম্পত্তিটি জনবহুল হয়েছে।

নিম্নলিখিত উদাহরণটি প্রদত্ত জিওআরএসএস ফিড থেকে একটি KmlLayer তৈরি করে:

টাইপস্ক্রিপ্ট

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: { lat: 49.496675, lng: -102.65625 },
    }
  );

  const georssLayer = new google.maps.KmlLayer({
    url:
      "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss",
  });
  georssLayer.setMap(map);
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

জাভাস্ক্রিপ্ট

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: { lat: 49.496675, lng: -102.65625 },
  });
  const georssLayer = new google.maps.KmlLayer({
    url: "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss",
  });

  georssLayer.setMap(map);
}

window.initMap = initMap;

সিএসএস

/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

এইচটিএমএল

<html>
  <head>
    <title>GeoRSS Layers</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises.
      See https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

নমুনা চেষ্টা করুন

নিম্নলিখিত উদাহরণটি প্রদত্ত KML ফিড থেকে একটি KmlLayer তৈরি করে:

টাইপস্ক্রিপ্ট

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 11,
      center: { lat: 41.876, lng: -87.624 },
    }
  );

  const ctaLayer = new google.maps.KmlLayer({
    url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml",
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

জাভাস্ক্রিপ্ট

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 11,
    center: { lat: 41.876, lng: -87.624 },
  });
  const ctaLayer = new google.maps.KmlLayer({
    url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml",
    map: map,
  });
}

window.initMap = initMap;

সিএসএস

/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

এইচটিএমএল

<html>
  <head>
    <title>KML Layers</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises.
      See https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

নমুনা চেষ্টা করুন

KML বৈশিষ্ট্য বিবরণ

যেহেতু KML-এ প্রচুর সংখ্যক বৈশিষ্ট্য অন্তর্ভুক্ত থাকতে পারে, আপনি KmlLayer অবজেক্ট থেকে সরাসরি বৈশিষ্ট্য ডেটা অ্যাক্সেস করতে পারবেন না। পরিবর্তে, বৈশিষ্ট্যগুলি যেমন প্রদর্শিত হয়, সেগুলিকে ক্লিকযোগ্য মানচিত্র জাভাস্ক্রিপ্ট API ওভারলেগুলির মতো দেখায়। স্বতন্ত্র বৈশিষ্ট্যগুলিতে ক্লিক করলে, ডিফল্টরূপে, প্রদত্ত বৈশিষ্ট্যের KML <title> এবং <description> তথ্য ধারণকারী একটি InfoWindow নিয়ে আসে। উপরন্তু, একটি KML বৈশিষ্ট্যে একটি ক্লিক একটি KmlMouseEvent তৈরি করে, যা নিম্নলিখিত তথ্য পাস করে:

  • position নির্দেশ করে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক যেখানে এই KML বৈশিষ্ট্যের জন্য InfoWindow অ্যাঙ্কর করতে হবে। এই অবস্থানটি সাধারণত বহুভুজ, পলিলাইন এবং গ্রাউন্ডওভারলেগুলির জন্য ক্লিক করা অবস্থান, তবে মার্কারগুলির জন্য আসল উত্স।
  • pixelOffset InfoWindow "টেইল" অ্যাঙ্কর করার জন্য উপরের position থেকে অফসেট নির্দেশ করে। বহুভুজ বস্তুর জন্য, এই অফসেটটি সাধারণত 0,0 হয় কিন্তু মার্কারগুলির জন্য মার্কারের উচ্চতা অন্তর্ভুক্ত থাকে।
  • featureData KmlFeatureData এর একটি JSON কাঠামো রয়েছে৷

একটি নমুনা KmlFeatureData অবজেক্ট নীচে দেখানো হয়েছে:

{
  author: {
    email: "nobody@google.com",
    name: "Mr Nobody",
    uri: "http://example.com"
  },
  description: "description",
  id: "id",
  infoWindowHtml: "html",
  name: "name",
  snippet: "snippet"
}

নিম্নলিখিত উদাহরণটি KML বৈশিষ্ট্য <Description> পাঠ্যকে একটি পাশে <div> এর মধ্যে প্রদর্শন করে যখন বৈশিষ্ট্যটিতে ক্লিক করা হয়:

টাইপস্ক্রিপ্ট

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 12,
      center: { lat: 37.06, lng: -95.68 },
    }
  );

  const kmlLayer = new google.maps.KmlLayer({
    url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml",
    suppressInfoWindows: true,
    map: map,
  });

  kmlLayer.addListener("click", (kmlEvent) => {
    const text = kmlEvent.featureData.description;

    showInContentWindow(text);
  });

  function showInContentWindow(text: string) {
    const sidebar = document.getElementById("sidebar") as HTMLElement;

    sidebar.innerHTML = text;
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

জাভাস্ক্রিপ্ট

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 12,
    center: { lat: 37.06, lng: -95.68 },
  });
  const kmlLayer = new google.maps.KmlLayer({
    url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml",
    suppressInfoWindows: true,
    map: map,
  });

  kmlLayer.addListener("click", (kmlEvent) => {
    const text = kmlEvent.featureData.description;

    showInContentWindow(text);
  });

  function showInContentWindow(text) {
    const sidebar = document.getElementById("sidebar");

    sidebar.innerHTML = text;
  }
}

window.initMap = initMap;

সিএসএস

/* Optional: Makes the sample page fill the window. */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#container {
  height: 100%;
  display: flex;
}

#sidebar {
  flex-basis: 15rem;
  flex-grow: 1;
  padding: 1rem;
  max-width: 30rem;
  height: 100%;
  box-sizing: border-box;
  overflow: auto;
}

#map {
  flex-basis: 0;
  flex-grow: 4;
  height: 100%;
}

এইচটিএমএল

<html>
  <head>
    <title>KML Feature Details</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="container">
      <div id="map"></div>
      <div id="sidebar"></div>
    </div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises.
      See https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

নমুনা চেষ্টা করুন

KML রেন্ডারিংয়ের জন্য আকার এবং জটিলতা সীমাবদ্ধতা

মানচিত্র জাভাস্ক্রিপ্ট API-এর লোড করা KML ফাইলের আকার এবং জটিলতার সীমাবদ্ধতা রয়েছে। নীচে বর্তমান সীমাগুলির একটি সারাংশ রয়েছে৷

দ্রষ্টব্য: এই সীমাগুলি যে কোনও সময় পরিবর্তন হতে পারে।

সর্বাধিক আনা ফাইলের আকার (কাঁচা KML, কাঁচা GeoRSS, বা সংকুচিত KMZ)
3MB
সর্বাধিক আনকম্প্রেসড KML ফাইলের আকার
10MB
KMZ ফাইলে সর্বাধিক আনকম্প্রেসড ইমেজ ফাইল সাইজ
ফাইল প্রতি 500KB
নেটওয়ার্ক লিঙ্কের সর্বাধিক সংখ্যা
10
নথি-ব্যাপী বৈশিষ্ট্যের সর্বাধিক সংখ্যা
1,000
KML স্তরের সংখ্যা
কেএমএল স্তরগুলির সংখ্যার একটি সীমা রয়েছে যা একটি একক Google মানচিত্রে প্রদর্শিত হতে পারে৷ আপনি এই সীমা অতিক্রম করলে, আপনার কোনো স্তর মানচিত্রে প্রদর্শিত হবে না এবং আপনার ওয়েব ব্রাউজারের জাভাস্ক্রিপ্ট কনসোলে একটি ত্রুটি রিপোর্ট করা হবে৷ সীমাটি তৈরি করা হয়েছে KmlLayer ক্লাসের সংখ্যা এবং সেই স্তরগুলি তৈরি করতে ব্যবহৃত সমস্ত URL-এর মোট দৈর্ঘ্যের সমন্বয়ের উপর ভিত্তি করে। আপনার তৈরি করা প্রতিটি নতুন KmlLayer স্তরটির জন্য সীমার একটি অংশ এবং সীমার আরও একটি অংশ গ্রহণ করবে URL এর দৈর্ঘ্যের উপর নির্ভর করে যেখান থেকে KML ফাইলটি লোড করা হয়েছিল। ফলস্বরূপ, আপনি যে স্তরগুলি যুক্ত করতে পারেন তা অ্যাপ্লিকেশন অনুসারে পরিবর্তিত হবে; গড়ে, আপনি সীমা আঘাত না করে 10 থেকে 20 স্তরের মধ্যে লোড করতে সক্ষম হবেন। আপনি যদি এখনও সীমা অতিক্রম করেন, তাহলে KML URL গুলিকে ছোট করতে একটি URL শর্টেনার ব্যবহার করুন৷ বিকল্পভাবে, পৃথক KML URL-এ NetworkLinks সমন্বিত একটি একক KML ফাইল তৈরি করুন।

কর্মক্ষমতা এবং ক্যাশিং বিবেচনা

আপনার সার্ভারে লোড কমাতে Google এর সার্ভারগুলি সাময়িকভাবে KML ফাইলগুলি ক্যাশে করবে৷ এটি আপনার ব্যবহারকারীদের জন্য আপনার KML ফাইলের উপযুক্ত সেগমেন্টগুলির একটি স্থান-দক্ষ উপস্থাপনা পরিবেশনের মাধ্যমে কর্মক্ষমতা উন্নত করবে, যেমন আপনার ব্যবহারকারীরা মানচিত্রে ক্লিক করে, প্যান করে এবং জুম করে।

সেরা পারফরম্যান্সের জন্য, আমরা আপনাকে সুপারিশ করছি:

  • KML-এ একটি উপযুক্ত <expires> ট্যাগ ব্যবহার করুন।

    KML ফাইলগুলি কীভাবে ক্যাশে করা যায় তা নির্ধারণ করার সময় KmlLayer HTTP হেডার ব্যবহার করবে না
  • অনুরোধের সময় গতিশীলভাবে ফাইল তৈরি করবেন না।

    পরিবর্তে, প্রয়োজনের আগে ফাইলগুলি তৈরি করুন এবং স্থিরভাবে পরিবেশন করুন। যদি আপনার সার্ভারের KML ফাইলটি প্রেরণ করতে দীর্ঘ সময় লাগে, KmlLayer প্রদর্শন নাও করতে পারে।
  • ক্যাশে বাইপাস করার চেষ্টা করবেন না যদি না আপনি নিশ্চিতভাবে জানেন যে আপনার ফাইল আপডেট করা হয়েছে।

    সর্বদা ক্যাশে বাইপাস করা (উদাহরণস্বরূপ, একটি র্যান্ডম নম্বর বা ব্যবহারকারীর ঘড়ির সময় একটি ক্যোয়ারী প্যারামিটার হিসাবে যুক্ত করে) সহজেই আপনার সার্ভারগুলিকে অভিভূত করতে পারে যদি আপনার সাইট হঠাৎ জনপ্রিয় হয়ে যায়, এবং আপনি বড় KML ফাইলগুলি পরিবেশন করেন।

    কোনো ব্যবহারকারীর ঘড়ি ভুল হলে এবং <expires> ট্যাগ সঠিকভাবে সেট করা না থাকলে এটি ক্যাশে ব্যবহারকারীদের কাছে পুরানো ডেটা পরিবেশন করতে পারে।

    পরিবর্তে, একটি নতুন, বিচ্ছিন্ন পুনর্বিবেচনা নম্বর সহ আপডেট করা স্ট্যাটিক ফাইলগুলি প্রকাশ করুন এবং বর্তমান সংস্করণের সাথে KmlLayer এ পাস করা URLকে গতিশীলভাবে আপডেট করতে সার্ভার-সাইড কোড ব্যবহার করুন৷
  • আপনার KML ফাইলে পরিবর্তন সীমিত করুন প্রতি মিনিটে একবার।

    যদি সমস্ত ফাইলের মোট আকার 1MB এর বেশি হয় (অসংকুচিত), তবে প্রতি 5 মিনিটে একবার পরিবর্তনগুলি সীমাবদ্ধ করুন।
  • একটি ভূ-স্থানিক ডেটা সার্ভার ব্যবহার করার সময়, স্তরগুলির ভিউপোর্ট সীমিত করতে ক্যোয়ারী প্যারামিটার ব্যবহার করা এড়িয়ে চলুন।

    পরিবর্তে, আপনি bounds_changed ইভেন্টের সাথে মানচিত্র ভিউপোর্ট সীমিত করতে পারেন। ব্যবহারকারীদের শুধুমাত্র স্বয়ংক্রিয়ভাবে প্রদর্শিত হতে পারে যে বৈশিষ্ট্য পাঠানো হবে.

    যদি আপনার ভূ-স্থানিক ডেটা সার্ভারে প্রচুর পরিমাণে ডেটা থাকে, তবে পরিবর্তে ডেটা স্তরগুলি ব্যবহার করার কথা বিবেচনা করুন৷
  • একটি ভূ-স্থানিক ডেটা সার্ভার ব্যবহার করার সময়, বিভিন্ন ক্যোয়ারী প্যারামিটার সহ একটি একক KmlLayer এর পরিবর্তে আপনি ব্যবহারকারীদের টগল করার অনুমতি দিতে চান এমন বৈশিষ্ট্যগুলির প্রতিটি গ্রুপের জন্য একাধিক KmlLayer ব্যবহার করুন৷
  • ফাইলের আকার কমাতে কম্প্রেস করা KMZ ফাইল ব্যবহার করুন।
  • আপনি যদি Google ক্লাউড স্টোরেজ বা অন্য ক্লাউড স্টোরেজ সলিউশন ব্যবহার করেন, তাহলে অ্যাক্সেস কন্ট্রোল জোরদার করতে সাইনড ইউআরএল বা অস্থায়ী টোকেনের মতো বৈশিষ্ট্যগুলি ব্যবহার করা এড়িয়ে চলুন । এগুলি অনিচ্ছাকৃতভাবে ক্যাশিং প্রতিরোধ করতে পারে।
  • একটি উপযুক্ত নির্ভুলতা সব পয়েন্টের নির্ভুলতা হ্রাস করুন.
  • বহুভুজ এবং পলিলাইনগুলির মতো অনুরূপ বৈশিষ্ট্যগুলির জ্যামিতি একত্রিত করুন এবং সরল করুন।
  • কোনো অব্যবহৃত উপাদান বা চিত্র সম্পদ সরান.
  • কোনো অসমর্থিত উপাদান সরান.

আপনি যদি ব্যক্তিগত ডেটা অ্যাক্সেস করতে চান, ক্যাশিং প্রতিরোধ করতে চান, বা একটি জিওস্পেশিয়াল ডেটা সার্ভারে একটি ক্যোয়ারী প্যারামিটার হিসাবে ব্রাউজার ভিউপোর্ট পাঠাতে চান, আমরা KmlLayer এর পরিবর্তে ডেটা স্তরগুলি ব্যবহার করার পরামর্শ দিই। এটি আপনার ব্যবহারকারীদের ব্রাউজারগুলিকে সরাসরি আপনার ওয়েব সার্ভার থেকে সংস্থানগুলির অনুরোধ করতে নির্দেশ করবে৷

সমর্থিত KML উপাদান

Maps JavaScript API নিম্নলিখিত KML উপাদানগুলিকে সমর্থন করে৷ KML পার্সার সাধারণত নীরবে XML ট্যাগগুলিকে উপেক্ষা করে যা এটি বুঝতে পারে না।

  • স্থানচিহ্ন
  • আইকন
  • ফোল্ডার
  • বর্ণনামূলক HTML—<BalloonStyle> এবং <text> এর মাধ্যমে সত্তা প্রতিস্থাপন
  • KMZ (সংকুচিত KML, সংযুক্ত ছবি সহ)
  • পলিলাইন এবং বহুভুজ
  • রঙ, ভরাট এবং অস্বচ্ছতা সহ পলিলাইন এবং বহুভুজের জন্য শৈলী
  • গতিশীলভাবে ডেটা আমদানি করতে নেটওয়ার্ক লিঙ্ক
  • গ্রাউন্ড ওভারলে এবং স্ক্রিন ওভারলে

নিম্নলিখিত সারণি সমর্থিত KML উপাদানগুলির সম্পূর্ণ বিবরণ দেয়।

KML উপাদান API এ সমর্থিত? মন্তব্য করুন
<ঠিকানা> না
<ঠিকানার বিবরণ> না
<ওরফে> N/A <Model> সমর্থিত নয়
<উচ্চতা> না
<altitudeMode> না
<atom:author> হ্যাঁ
<atom:link> হ্যাঁ
<atom:name> হ্যাঁ
<বেলুন স্টাইল> আংশিকভাবে শুধুমাত্র <text> সমর্থিত
<শুরু> N/A <TimeSpan> সমর্থিত নয়
<bgColor> না
<bottomFov> N/A <PhotoOverlay> সমর্থিত নয়
<ক্যামেরা> না
<পরিবর্তন> আংশিকভাবে শুধুমাত্র শৈলী পরিবর্তন সমর্থিত
<রঙ> আংশিকভাবে #AABBGGRR এবং #BBGGRR অন্তর্ভুক্ত; <IconStyle>, <ScreenOverlay> এবং <GroundOverlay>-এ সমর্থিত নয়
<colorMode> না
<কুকি> না
<কোঅর্ডিনেট> হ্যাঁ
<তৈরি করুন> না
<ডেটা> হ্যাঁ
<মুছুন> না
<description> হ্যাঁ HTML বিষয়বস্তু অনুমোদিত কিন্তু ক্রস-ব্রাউজার আক্রমণ থেকে রক্ষা করার জন্য স্যানিটাইজ করা হয়েছে। $[ dataName ] ফর্মের সত্তা প্রতিস্থাপন সমর্থিত নয়।
<displayMode> না
<displayName> না
<নথি> আংশিকভাবে অন্তর্নিহিতভাবে, শিশুদের সমর্থন করা হয়; অন্যান্য বৈশিষ্ট্যের শিশু হিসাবে কোন প্রভাব নেই
<drawOrder> না
<পূর্ব> হ্যাঁ
<শেষ> N/A <TimeSpan> সমর্থিত নয়
<মেয়াদ শেষ> হ্যাঁ বিস্তারিত জানার জন্য সারাংশ বিভাগ দেখুন
<এক্সটেন্ডেডডেটা> আংশিকভাবে টাইপ না করা <Data> শুধুমাত্র, কোন <SimpleData> বা <Schema>, এবং $[ dataName ] ফর্মের সত্তা প্রতিস্থাপন সমর্থিত নয়।
<বহির্ভূত> না
<পূরণ> হ্যাঁ
<flyToView> না
<ফোল্ডার> হ্যাঁ
<geomColor> না অবমূল্যায়ন
<জ্যামিতি সংগ্রহ> না অবমূল্যায়ন
<geomScale> না অবমূল্যায়ন
<gridOrigin> N/A <PhotoOverlay> সমর্থিত নয়
<গ্রাউন্ডওভারলে> হ্যাঁ ঘোরানো যাবে না
<h> হ্যাঁ অবমূল্যায়ন
<শিরোনাম> হ্যাঁ
ইঙ্গিত হ্যাঁ target=... সমর্থিত
<হটস্পট> হ্যাঁ
<href> হ্যাঁ
<httpQuery> না
<আইকন> হ্যাঁ ঘোরানো যাবে না
<আইকনস্টাইল> হ্যাঁ
<ইমেজ পিরামিড> N/A <PhotoOverlay> সমর্থিত নয়
<innerBoundaryIs> হ্যাঁ স্পষ্টভাবে <LinearRing> অর্ডার থেকে
<আইটেম আইকন> N/A <ListStyle> সমর্থিত নয়
<কী> N/A <StyleMap> সমর্থিত নয়
<kml> হ্যাঁ
<labelColor> না অবমূল্যায়ন
<লেবেল স্টাইল> না
<অক্ষাংশ> হ্যাঁ
<LatLonAltBox> হ্যাঁ
<LatLonBox> হ্যাঁ
<leftFov> N/A <PhotoOverlay> সমর্থিত নয়
<লিনিয়াররিং> হ্যাঁ
<লাইনস্ট্রিং> হ্যাঁ
<লাইনস্টাইল> হ্যাঁ
<লিঙ্ক> হ্যাঁ
<linkDescription> না
<linkName> না
<linkSnippet> না
<listItemType> N/A <ListStyle> সমর্থিত নয়
<লিস্টস্টাইল> না
<অবস্থান> N/A <Model> সমর্থিত নয়
<লোড> হ্যাঁ
<দ্রাঘিমাংশ> হ্যাঁ
<দেখুন> না
<maxAltitude> হ্যাঁ
<maxFadeExtent> হ্যাঁ
<maxHeight> N/A <PhotoOverlay> সমর্থিত নয়
<maxLodPixels> হ্যাঁ
<maxSessionLength> না
<maxWidth> N/A <PhotoOverlay> সমর্থিত নয়
<বার্তা> না
<মেটাডেটা> না অবমূল্যায়ন
<minAltitude> হ্যাঁ
<minFadeExtent> হ্যাঁ
<minLodPixels> হ্যাঁ
<minRefreshPeriod> না <নেটওয়ার্কলিঙ্ক>
<মডেল> না
<মাল্টি জ্যামিতি> আংশিকভাবে রেন্ডার করা হয়েছে কিন্তু বাম পাশের প্যানেলে আলাদা বৈশিষ্ট্য হিসেবে প্রদর্শিত হয়েছে
<নাম> হ্যাঁ
<কাছে> N/A <PhotoOverlay> সমর্থিত নয়
<নেটওয়ার্কলিঙ্ক> হ্যাঁ
<NetworkLinkControl> আংশিকভাবে <আপডেট> এবং <মেয়াদ শেষ> আংশিকভাবে সমর্থিত। API HTTP শিরোনামে মেয়াদ শেষ হওয়ার সেটিংস উপেক্ষা করে কিন্তু KML-এ নির্দিষ্ট মেয়াদ শেষ হওয়ার সেটিংস ব্যবহার করে। মেয়াদ শেষ হওয়ার সেটিংসের অনুপস্থিতিতে, বা সময়ের বৈধতার ব্যবধানের মধ্যে, Google মানচিত্র অনির্দিষ্ট সময়ের জন্য ইন্টারনেট থেকে আনা ডেটা ক্যাশে করতে পারে। ডকুমেন্টের নাম পরিবর্তন করে এবং একটি ভিন্ন URL এর অধীনে আনয়ন করে, অথবা নথিতে উপযুক্ত মেয়াদ শেষ হওয়ার সেটিংস রয়েছে তা নিশ্চিত করে ইন্টারনেট থেকে ডেটা ফেরত আনতে বাধ্য করা যেতে পারে।
<উত্তর> হ্যাঁ
<খোলা> হ্যাঁ
<ওরিয়েন্টেশন> N/A <Model> সমর্থিত নয়
<outerBoundaryIs> হ্যাঁ স্পষ্টভাবে <LinearRing> অর্ডার থেকে
<আউটলাইন> হ্যাঁ
<overlayXY> না
<জোড়া> N/A <StyleMap> সমর্থিত নয়
<ফোন নম্বর> না
<ফটোওভারলে> না
<প্লেসমার্ক> হ্যাঁ
<বিন্দু> হ্যাঁ
<বহুভুজ> হ্যাঁ
<পলিস্টাইল> হ্যাঁ
<রেঞ্জ> হ্যাঁ
<refreshInterval> আংশিকভাবে <লিঙ্ক> শুধুমাত্র; <আইকন>-এ নেই
<refreshMode> হ্যাঁ HTTP হেডার "onExpire" মোডের জন্য সমর্থিত নয়। উপরে <Update> এবং <expires>-এ নোট দেখুন।
<refreshVisibility> না
<অঞ্চল> হ্যাঁ
<রিসোর্সম্যাপ> N/A <Model> সমর্থিত নয়
<rightFov> N/A <PhotoOverlay> সমর্থিত নয়
<roll> N/A <ক্যামেরা> এবং <মডেল> সমর্থিত নয়
<ঘূর্ণন> না
<rotationXY> না
<স্কেল> N/A <Model> সমর্থিত নয়
<স্কেল> না
<স্কিমা> না
<স্কিমাডেটা> না
<স্ক্রিন ওভারলে> হ্যাঁ ঘোরানো যাবে না
<screenXY> না
<আকৃতি> N/A <PhotoOverlay> সমর্থিত নয়
<সাধারণ ডেটা> N/A <SchemaData> সমর্থিত নয়
<সিম্পলফিল্ড> N/A <স্কিমা> সমর্থিত নয়
<আকার> হ্যাঁ
<স্নিপেট> হ্যাঁ
<দক্ষিণ> হ্যাঁ
<state> N/A <ListStyle> সমর্থিত নয়
<স্টাইল> হ্যাঁ
<স্টাইলম্যাপ> না রোলওভার (হাইলাইট) প্রভাব সমর্থিত নয়
<styleUrl> N/A <StyleMap> সমর্থিত নয়
<targetHref> আংশিকভাবে <Update>-এ সমর্থিত, <Alias>-এ নয়
<টেসেলেট> না
<পাঠ্য> হ্যাঁ $[geDirections] এর প্রতিস্থাপন সমর্থিত নয়
<টেক্সট কালার> না
<টাইল সাইজ> N/A <PhotoOverlay> সমর্থিত নয়
<টিল্ট> না
<টাইমস্প্যান> না
<টাইমস্ট্যাম্প> না
<topFov> N/A <PhotoOverlay> সমর্থিত নয়
<আপডেট> আংশিকভাবে শুধুমাত্র শৈলী পরিবর্তন, <তৈরি> বা <মুছুন> নয়
<Url> হ্যাঁ অবমূল্যায়ন
<মান> হ্যাঁ
<viewBoundScale> না
<ভিউ ফরম্যাট> না
<viewRefreshMode> আংশিকভাবে "অনস্টপ" সমর্থিত
<ভিউ রিফ্রেশটাইম> হ্যাঁ
<ভিউ ভলিউম> N/A <PhotoOverlay> সমর্থিত নয়
<দৃশ্যমানতা> আংশিকভাবে হ্যাঁ <Folder>-এ - চাইল্ড প্লেসমার্ক তাদের দৃশ্যমানতার উত্তরাধিকারী হয়
<w> হ্যাঁ অবমূল্যায়ন
<west> হ্যাঁ
<কখন> N/A <TimeStamp> সমর্থিত নয়
<প্রস্থ> হ্যাঁ
<x> হ্যাঁ অবমূল্যায়ন
<y> হ্যাঁ অবমূল্যায়ন