Google Maps KML ইম্পোর্টিং ইউটিলিটি

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট
  1. ভূমিকা
  2. একটি KML স্তর যোগ করুন
  3. একটি KML স্তর সাফ করুন
  4. KML পাত্রে অ্যাক্সেস করুন
  5. KML প্লেসমার্ক এবং KML গ্রাউন্ড ওভারলে অ্যাক্সেস করুন
  6. KML বৈশিষ্ট্য অ্যাক্সেস করুন
  7. KML সমর্থিত বৈশিষ্ট্য

ভূমিকা

KML হল XML ডেটা ফরম্যাটের একটি এক্সটেনশন এবং একটি মানচিত্রে ভৌগলিক ডেটা উপস্থাপন করে। এই ইউটিলিটি ব্যবহার করে, আপনি KML অবজেক্টকে ভৌগলিক আকারে রূপান্তর করতে পারেন এবং একটি মানচিত্রের উপরে একটি স্তর হিসাবে রেন্ডার করতে পারেন। মানচিত্রে এবং থেকে আপনার KML ডেটা যোগ করতে এবং সরাতে, যথাক্রমে addLayerToMap() এবং removeLayerFromMap() কল করুন। একটি KML অবজেক্টে বৈশিষ্ট্যগুলি অ্যাক্সেস করতে, যেকোনো স্থানচিহ্ন, গ্রাউন্ডওভারলে, নথি বা ফোল্ডারে getProperties() কল করুন।

মানচিত্রে একটি KML স্তর যোগ করুন

মানচিত্রে একটি ডেটা স্তর যুক্ত করতে, প্রথমে KmlLayer ক্লাসের একটি উদাহরণ তৈরি করুন। একটি KmlLayer ইনস্ট্যান্ট করার দুটি উপায় আছে।

একটি স্থানীয় সংস্থান থেকে একটি KML ডেটাসেট আমদানি এবং রেন্ডার করতে, আপনার প্রয়োজন:

  • একটি GoogleMap অবজেক্ট যেখানে স্তরটি রেন্ডার করা হবে৷
  • KML ডেটা ধারণকারী একটি স্থানীয় সম্পদ ফাইল।
  • একটি Context বস্তু, যা একটি স্থানীয় সম্পদ ফাইল খুলতে প্রয়োজন।

কোটলিন



val layer = KmlLayer(map, R.raw.geojson_file, context)

      

জাভা


KmlLayer layer = new KmlLayer(map, R.raw.geojson_file, context);

      

একটি স্থানীয় স্ট্রীম থেকে একটি KML ডেটাসেট আমদানি এবং রেন্ডার করতে, আপনার প্রয়োজন:

  • একটি GoogleMap অবজেক্ট যেখানে স্তরটি রেন্ডার করা হবে৷
  • KML ডেটা সমন্বিত একটি InputStream
  • একটি Context অবজেক্ট, যা স্থানীয় সম্পদ খুলতে প্রয়োজন।

কোটলিন



val inputStream: InputStream? =  // InputStream containing KML data
val layer = KmlLayer(map, inputStream, context)

      

জাভা


InputStream inputStream = // InputStream containing KML data
KmlLayer layer = new KmlLayer(map, inputStream, context);

      

আপনি একটি KmlLayer তৈরি করার পরে, মানচিত্রে আমদানি করা ডেটা যোগ করতে addLayerToMap()() কল করুন।

কোটলিন



layer.addLayerToMap()

      

জাভা


layer.addLayerToMap();

      

একটি KML স্তর সাফ করুন

ধরা যাক আপনি এই KmlLayer তৈরি করেছেন:

কোটলিন



val inputStream: InputStream? =  // InputStream containing KML data
val layer = KmlLayer(map, inputStream, context)

      

জাভা


InputStream inputStream = // InputStream containing KML data
KmlLayer layer = new KmlLayer(map, inputStream, context);

      

মানচিত্র থেকে স্তরটি সরাতে, removeLayerFromMap() কল করুন :

কোটলিন



layer.removeLayerFromMap()

      

জাভা


layer.removeLayerFromMap();

      

KML পাত্রে অ্যাক্সেস করুন

আপনার লেয়ারে যোগ করা কোনো পাত্রে প্রবেশ করতে, আপনি যে লেয়ারটি তৈরি করেছেন তাতে getContainers() কল করতে পারেন। কোনো পাত্রে নেস্টেড কন্টেইনার আছে কিনা তা পরীক্ষা করতে, আপনি hasContainers() কল করতে পারেন। এই নেস্টেড কন্টেইনারগুলি অ্যাক্সেস করতে, আপনি আপনার স্তরে যা করতে পারেন তার অনুরূপ, আপনি কল করতে পারেন getContainers()

KmlLayer বা KmlContainer-এ নেস্ট করা নেই এমন কন্টেইনার অ্যাক্সেস করতে KmlContainer:

কোটলিন



for (containers in layer.containers) {
    // Do something to container
}

      

জাভা


for (KmlContainer containers : layer.getContainers()) {
    // Do something to container
}

      

একটি KmlLayer বা KmlContainer এ নেস্ট করা পাত্রে প্রবেশ করতে:

কোটলিন



fun accessContainers(containers: Iterable<KmlContainer>) {
    for (container in containers) {
        if (container.hasContainers()) {
            accessContainers(container.containers)
        }
    }

      

জাভা


public void accessContainers(Iterable<KmlContainer> containers) {
    for (KmlContainer container : containers) {
        if (container.hasContainers()) {
            accessContainers(container.getContainers());
        }
    }
}

      

KML প্লেসমার্ক এবং KML গ্রাউন্ড ওভারলে অ্যাক্সেস করুন

লেয়ারে যোগ করা যেকোন প্লেসমার্ক বা গ্রাউন্ড ওভারলে অ্যাক্সেস করতে, আপনি লেয়ার বা কন্টেইনারে getPlacemarks() বা getGroundOverlays() কল করতে পারেন। কল করলে যথাক্রমে KmlPlacemarks বা KmlGroundOverlays এর একটি পুনরাবৃত্তিযোগ্য হবে।

উদাহরণস্বরূপ, একটি স্তর থেকে একটি KmlPlacemark বস্তু অ্যাক্সেস করতে:

কোটলিন



for (placemark in layer.placemarks) {
    // Do something to Placemark
}

      

জাভা


for (KmlPlacemark placemark : layer.getPlacemarks()) {
    // Do something to Placemark
}

      

KML বৈশিষ্ট্য অ্যাক্সেস করুন

একটি ধারক বা স্থান চিহ্নের যেকোন সম্পত্তি অ্যাক্সেস করতে, getProperty() কল করুন এবং এটি একটি সম্পত্তি কী দিন। এটি বিদ্যমান কিনা তা পরীক্ষা করতে আপনি hasProperty() কল করতে পারেন। এই নমুনা দেখায় কিভাবে একটি ধারক থেকে সম্পত্তি মান "নাম" পুনরুদ্ধার করতে হয়, যদি এটি বিদ্যমান থাকে।

কোটলিন



for (container in layer.containers) {
    if (container.hasProperty("name")) {
        Log.i("KML", container.getProperty("name"))
    }
}

      

জাভা


for (KmlContainer container : layer.getContainers()) {
    if (container.hasProperty("name")) {
        Log.i("KML", container.getProperty("name"));
    }
}

      

KML জ্যামিতি ক্লিক ইভেন্ট

মানচিত্রের জ্যামিতি বৈশিষ্ট্যগুলিতে ক্লিক ইভেন্টগুলি শুনতে আপনি KmlLayer.OnFeatureClickListener() ব্যবহার করতে পারেন৷ নিম্নলিখিত উদাহরণটি একটি বৈশিষ্ট্যের ID লগ করে যখন ব্যবহারকারী বৈশিষ্ট্যটিতে ক্লিক করে:

কোটলিন



// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener { feature ->
    Log.i(
        "KML",
        "Feature clicked: " + feature.id
    )
}

      

জাভা


// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener(new KmlLayer.OnFeatureClickListener() {
    @Override
    public void onFeatureClick(Feature feature) {
        Log.i("KML", "Feature clicked: " + feature.getId());
    }
});

      

ডেমো অ্যাপটি দেখুন

একটি KML ফাইল আমদানি করা এবং এটির সাথে একটি স্তর তৈরি করার উদাহরণের জন্য, ডেমো অ্যাপে KmlDemoActivity দেখুন যা ইউটিলিটি লাইব্রেরির সাথে পাঠানো হয়। সেটআপ গাইড আপনাকে দেখায় কিভাবে ডেমো অ্যাপ চালাতে হয়।

KML সমর্থিত বৈশিষ্ট্য

KML উপাদান সমর্থিত? মন্তব্য করুন
<ঠিকানা> আংশিকভাবে একটি সম্পত্তি মান হিসাবে সংরক্ষিত
<ঠিকানার বিবরণ> না
<ওরফে> না
<উচ্চতা> না
<altitudeMode> না
<atom:author> না
<atom:link> না
<atom:name> না
<বেলুন স্টাইল> আংশিকভাবে শুধুমাত্র <text> সমর্থিত
<শুরু> N/A <TimeSpan> সমর্থিত নয়
<bgColor> না
<bottomFov> N/A <PhotoOverlay> সমর্থিত নয়
<ক্যামেরা> না
<পরিবর্তন> আংশিকভাবে শুধুমাত্র শৈলী পরিবর্তন সমর্থিত
<রঙ> আংশিকভাবে #AABBGGRR এবং #BBGGRR অন্তর্ভুক্ত; <ScreenOverlay>, এবং <GroundOverlay>-এ সমর্থিত নয়
<colorMode> হ্যাঁ
<কুকি> না <NetworkLinkControl> সমর্থিত নয়
<কোঅর্ডিনেট> হ্যাঁ
<তৈরি করুন> না
<ডেটা> না
<মুছুন> না
<description> হ্যাঁ শুধুমাত্র প্লেইন টেক্সট, কোন HTML কন্টেন্ট সমর্থিত নয়
<displayMode> না
<displayName> না
<নথি> হ্যাঁ
<drawOrder> হ্যাঁ
<পূর্ব> হ্যাঁ
<শেষ> N/A <TimeSpan> সমর্থিত নয়
<মেয়াদ শেষ> না <NetworkLinkControl> সমর্থিত নয়
<এক্সটেন্ডেডডেটা> আংশিকভাবে টাইপ করা হয়নি শুধুমাত্র <Data>, কোন <SimpleData> বা <Schema>, এবং $[dataName] ফর্মের সত্তা প্রতিস্থাপন অসমর্থিত।
<বহির্ভূত> না
<পূরণ> হ্যাঁ
<flyToView> না <NetworkLinkControl> সমর্থিত নয়
<ফোল্ডার> হ্যাঁ
<gridOrigin> N/A <PhotoOverlay> সমর্থিত নয়
<গ্রাউন্ডওভারলে> হ্যাঁ
<শিরোনাম> হ্যাঁ
<হটস্পট> হ্যাঁ
<href> হ্যাঁ
<httpQuery> না
<আইকন> হ্যাঁ
<আইকনস্টাইল> হ্যাঁ
<ইমেজ পিরামিড> N/A <PhotoOverlay> সমর্থিত নয়
<innerBoundaryIs> হ্যাঁ স্পষ্টভাবে <LinearRing> অর্ডার থেকে
<আইটেম আইকন> N/A <ListStyle> সমর্থিত নয়
<কী> হ্যাঁ
<kml> হ্যাঁ
<লেবেল স্টাইল> না
<অক্ষাংশ> হ্যাঁ
<LatLonAltBox> না
<LatLonBox> হ্যাঁ
<leftFov> N/A <PhotoOverlay> সমর্থিত নয়
<লিনিয়াররিং> হ্যাঁ
<লাইনস্ট্রিং> হ্যাঁ
<লাইনস্টাইল> হ্যাঁ
<লিঙ্ক> না
<linkDescription> N/A <NetworkLinkControl> সমর্থিত নয়
<linkName> N/A <NetworkLinkControl> সমর্থিত নয়
<linkSnippet> N/A <NetworkLinkControl> সমর্থিত নয়
<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> না
<উত্তর> হ্যাঁ
<খোলা> হ্যাঁ একটি সম্পত্তি মান হিসাবে সংরক্ষিত
<ওরিয়েন্টেশন> N/A <Model> সমর্থিত নয়
<outerBoundaryIs> হ্যাঁ স্পষ্টভাবে <LinearRing> অর্ডার থেকে
<আউটলাইন> হ্যাঁ
<overlayXY> না
<জোড়া> হ্যাঁ
<ফোন নম্বর> আংশিকভাবে একটি সম্পত্তি মান হিসাবে সংরক্ষিত
<ফটোওভারলে> না
<প্লেসমার্ক> হ্যাঁ
<বিন্দু> হ্যাঁ
<বহুভুজ> হ্যাঁ
<পলিস্টাইল> হ্যাঁ
<রেঞ্জ> হ্যাঁ
<refreshInterval> না
<refreshMode> না
<refreshVisibility> না
<অঞ্চল> হ্যাঁ
<রিসোর্সম্যাপ> N/A <Model> সমর্থিত নয়
<rightFov> N/A <PhotoOverlay> সমর্থিত নয়
<roll> N/A <ক্যামেরা> এবং <মডেল> সমর্থিত নয়
<ঘূর্ণন> হ্যাঁ
<rotationXY> না
<স্কেল> N/A <Model> সমর্থিত নয়
<স্কেল> হ্যাঁ
<স্কিমা> না
<স্কিমাডেটা> না
<স্ক্রিন ওভারলে> না
<screenXY> N/A <ScreenOverlay> সমর্থিত নয়
<আকৃতি> N/A <PhotoOverlay> সমর্থিত নয়
<সাধারণ ডেটা> N/A <SchemaData> সমর্থিত নয়
<সিম্পলফিল্ড> N/A <স্কিমা> সমর্থিত নয়
<আকার> হ্যাঁ
<স্নিপেট> না
<দক্ষিণ> হ্যাঁ
<state> N/A <ListStyle> সমর্থিত নয়
<স্টাইল> হ্যাঁ
<স্টাইলম্যাপ> আংশিকভাবে হাইলাইট করা শৈলী সরবরাহ করা হয়নি। ইনলাইন স্টাইলম্যাপ সমর্থিত নয়
<styleUrl> হ্যাঁ
<targetHref> না <আলিয়াস> সমর্থিত নয়
<টেসেলেট> না
<পাঠ্য> হ্যাঁ
<টেক্সট কালার> না
<টাইল সাইজ> N/A <PhotoOverlay> সমর্থিত নয়
<টিল্ট> না
<টাইমস্প্যান> না
<টাইমস্ট্যাম্প> না
<topFov> N/A <PhotoOverlay> সমর্থিত নয়
<আপডেট> N/A <NetworkLinkControl< সমর্থিত নয়
<মান> হ্যাঁ
<viewBoundScale> না
<ভিউ ফরম্যাট> না
<viewRefreshMode> না
<ভিউ রিফ্রেশটাইম> না
<ভিউ ভলিউম> N/A <PhotoOverlay> সমর্থিত নয়
<দৃশ্যমানতা> হ্যাঁ
<west> হ্যাঁ
<কখন> N/A <TimeStamp> সমর্থিত নয়
<প্রস্থ> হ্যাঁ