ওপেনলায়ার্সে ওভারল্যাপিং বৈশিষ্ট্যগুলির সাথে সম্পর্কিত


14

যদি ব্যবহারকারীরা একটি বহুভুজ বৈশিষ্ট্য তৈরি করেন যা অন্যটির মতো সম্পূর্ণরূপে ওভারল্যাপ করে ...

… তারপরে আপনি অভ্যন্তরীণ বৈশিষ্ট্যটি নির্বাচন করতে পারবেন এমন কোনও উপায় নেই, অর্থাত্‍ এটির যা অন্যটির দ্বারা আবৃত থাকে। আমি বর্তমানে এটির SelectFeatureমতো একটি সাধারণ ব্যবহার করছি :

var select = new OpenLayers.Control.SelectFeature(
  [this.annotationLayer, this.controlPointsLayer], { 
    hover: true,
    renderIntent: "temporary"
    }
);
this.map.addControl(select);
select.activate();

তবে স্পষ্টতই, আমি কেবল এটি বাইরের বৈশিষ্ট্যটি নির্বাচন করতে পেতে পারি। এটি মোকাবেলার সাধারণ উপায় কী? ব্যবহারকারীর পক্ষে অভ্যন্তরীণ বৈশিষ্ট্যটিও নির্বাচন করা কীভাবে সম্ভব?

এর সহজ সমাধানটি সম্ভবত অভ্যন্তরীণ বৈশিষ্ট্যটি বিয়োগ করার সময় যে অংশটি বাকী রয়েছে তার মধ্যে কেবলমাত্র বাইরের বৈশিষ্ট্যটিকে কেবলমাত্র বাছাইযোগ্য করে তোলা - তবে কীভাবে কীভাবে করবেন তা আমার কোনও ধারণা নেই।


1
আপনি একটি Z-ইনডেক্স (ক্রমানুসার) তৈরি করতে হবে - দেখুন openlayers.org/dev/examples/ordering.html
Mapperz

ভাই, এর অর্থ হ'ল ওভারল্যাপগুলির জন্য বৈশিষ্ট্যগুলির প্রতিটি সম্ভাব্য সংমিশ্রণটি ম্যানুয়ালি আমি পরীক্ষা করতে এবং সেগুলি লোড করার আগে একটি কাস্টম জেড-অর্ডার বরাদ্দ করতে হয়েছিল? যেমন ... এমন একটি ক্রিয়াকলাপ থাকা যা একটি বৈশিষ্ট্য সম্পূর্ণরূপে অন্যটির মধ্যে অন্তর্ভুক্ত কিনা তা নির্ধারণ করে?
slhck

জেড-ইনডেক্স অর্ডারিংয়ের কাজ হয় না
নিওজিওম্যাট

উত্তর:


10

কয়েকটি বিকল্প। অন্যদের তুলনায় কিছু ক্রেজিয়ার :-)। প্রাথমিক কৌশলগুলি হ'ল

  • গুচ্ছ বৈশিষ্ট্য
  • শীর্ষ বৈশিষ্ট্যটি লুকান / সরান
  • শীর্ষ বৈশিষ্ট্যটির মাধ্যমে ক্লিকটি প্রেরণ করুন

==>

  1. বৈশিষ্ট্য ক্লাস্টারিং কৌশল চালু করুন

  2. আপনার নিজের ক্লাস্টারিং অ্যালগরিদমটি প্রয়োগ করুন, সুতরাং যখন কোনও নতুন আইটেম যুক্ত করা বা সংশোধন করা হবে, তখন আপনার অ্যালগরিদম পুনরায় চালিত হয় এবং কী দিয়ে ওভারল্যাপ হয় তা দেখার জন্য নেস্টেড ফর লুপ চেক এবং এন * এন (-1) চেক করে - তারপরে বৈশিষ্ট্য বৈশিষ্ট্যটি সংশোধন করুন ওভারল্যাপিং বৈশিষ্ট্যগুলির একটি তালিকা সেটআপ করতে, এবং ব্যবহারকারী যখন বৈশিষ্ট্যটিতে ক্লিক করেন, এমন বৈশিষ্ট্যগুলির একটি তালিকা প্রদর্শন করুন যা ওভারল্যাপ করে এবং ব্যবহারকারীরা তাদের সত্যিকার অর্থে কী ক্লিক করতে চান তা নির্বাচন করে। বোধ হয়?

  3. অন ​​ক্লিকের বৈশিষ্ট্যটি প্রয়োগ করার পরিবর্তে, কেবলমাত্র একটি সম্পূর্ণ মানচিত্রের ক্লিক হ্যান্ডলার প্রয়োগ করুন। এবং যখন ব্যবহারকারী ক্লিক করেন, কোনও ছেদযুক্ত বৈশিষ্ট্যগুলির জন্য আপনার স্তরটি পরীক্ষা করুন - এবং যদি সেখানে একটি থাকে - সেই লোকটির পপ-আপ প্রদর্শন করুন এবং যদি সেখানে একাধিক থাকে তবে উপরের # 2 এর মতো একটি প্রম্পট তালিকা প্রদর্শন করুন। যদি কেউ ছেদ না করে তবে তা উপেক্ষা করুন।

  4. আপনাকে লুকানো বৈশিষ্ট্যে অ্যাক্সেস পেতে দেয় এমন কোনও বৈশিষ্ট্য অস্থায়ীভাবে "আড়াল" করতে ডান-ক্লিক বিকল্পটি প্রয়োগ করুন। পরেরটি ক্লিক করার সাথে সাথে সমস্ত লুকানো বৈশিষ্ট্য পুনরায় প্রদর্শন করুন

  5. শীর্ষস্থানীয় বৈশিষ্ট্যের পপ-আপের ভিতরে # 4 এর মতো, বৈশিষ্ট্যটিকে "আড়াল" করতে একটি মেনু / লিঙ্ক আইটেম যুক্ত করুন। এবং # 4 এর মতো এগিয়ে যান।

  6. # 4/5 তে অনুরূপ-ইশ একটি ডান-ক্লিক "অস্থায়ী পদক্ষেপ" বাস্তবায়ন করে এবং বৈশিষ্ট্যটিকে বাইরে রেখে টানুন ক্লিক করুন [মনে রাখবেন এটি পুরানো স্পট]। তারপরে ব্যবহারকারী নিম্ন বৈশিষ্ট্যটি ক্লিক করে এবং শীর্ষস্থানীয়টি তার মূল অবস্থানে ফিরে আসে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.