জিও সার্ভার ডাব্লুএমএস গেটফিজিআর ইনফোর অনুরোধের মাধ্যমে ফেরত ক্ষেত্রগুলি কীভাবে নির্বাচন করবেন?


9

আমি পোস্টজিআইএস / জিও সার্ভার / ওপেনলায়ার্স স্ট্যাকের ভিত্তিতে সাধারণ স্থানীয় ম্যাপিং পরিষেবা চালাচ্ছি।

ওপেনজিও টিউটোরিয়াল অনুসরণ করে আমি ওপেনলায়ার্সে ক্লিক ইভেন্টগুলিকে ডাব্লুএমএস গেটফিজিচার ইনফো কলটিতে বেঁধেছি:

    map.events.register('click', map, function (e) {
        var url = "http://localhost:1979/geoserver/wms" 
          + "?REQUEST=GetFeatureInfo"
          + "&EXCEPTIONS=application/vnd.ogc.se_xml"
          + "&BBOX=" + map.getExtent().toBBOX()
          + "&X=" + e.xy.x
          + "&Y=" + e.xy.y
          + "&INFO_FORMAT=text/html"
          + "&QUERY_LAYERS=MYDATA:MYLAYER"
          + "&LAYERS=MYDATA:MYLAYER"
          + "&FEATURE_COUNT=5"
          + "&SRS=EPSG:3857"
          + "&STYLES="
          + "&WIDTH=" + map.size.w
          + "&HEIGHT=" + map.size.h;
        window.open(url,
          "getfeatureinfo",
          "location=0,status=0,scrollbars=1,width=800,height=125"
        );
      });

প্রতিক্রিয়াটি সঠিকভাবে ফর্ম্যাট করতে আমি জিও সার্ভারের ফ্রিমার্কার টেম্পলেট ব্যবহার করেছি । আমার সমস্যাটি হ'ল আমি যে প্রতিক্রিয়া পেয়েছি সেগুলি স্তর থেকে সমস্ত ক্ষেত্র প্রত্যাবর্তন করে।

ব্যবহারকারীর সাথে প্রাসঙ্গিক যেগুলি নির্বাচন করার কোনও উপায় আছে?

উত্তর:


7

ভাল দেখাচ্ছে না ( উত্স ):

... getFeatureInfo [...] একটি ডাব্লুএমএস অনুরোধ এবং ডাব্লুএফএস। [...] তাদের আচরণের মধ্যে একটি পার্থক্য হ'ল জিওসার্ভার সর্বদা getFeatureInfo এর সাথে সমস্ত বৈশিষ্ট্য প্রেরণ করে তবে ডাব্লুএফএসের সাথে অনুরোধে বৈশিষ্ট্যের তালিকা দেওয়া যেতে পারে।

আপনি এমন একটি ভিউ তৈরি করতে পারেন যা আপনার ব্যবহারকারীকে জিওসিভারের মাধ্যমে দেখতে ও পরিবেশন করতে চায় এমন বৈশিষ্ট্যগুলি ধারণ করে।

একটি বিকল্প হ'ল ডাই গেটফেরিআইএনফো টেমপ্লেট সামঞ্জস্য করা হবে


2
প্রদর্শিত বা প্রদর্শন না করা একটি জিনিস তবে রাডেক কেবল কিছু ক্ষেত্রের মান ফিরিয়ে দিতে চায়। এটি স্থানান্তরিত ডেটা এবং সুরক্ষা দিকগুলি সম্পর্কে একটি বড় পার্থক্য করে।
সিমো

2
এজন্য আমার প্রথম পরামর্শটি ছিল একটি ভিউ তৈরি করা।
আন্ডার ডার্ক

এখানে ভিউ ব্যবহার করার বিষয়ে আরও ।
radek

7

আপনার ফ্রিমার্কার টেম্পলেটে আপনি যে ক্ষেত্রগুলি চান না কেবল তা অন্তর্ভুক্ত করবেন না। Http://docs.geoserver.org/trunk/en/user/tutorials/GETFeatureInfo/index.html#custom-templets দেখুন


ভাল লিঙ্ক, জিওসারবার সাইটে কিছু সত্যিকারের ভাল ডকুমেন্টেশন রয়েছে - এই উদাহরণটি আমি যে ক্ষেত্রগুলি চেয়েছিলাম কেবল তা ফেরত দেওয়ার জন্য দরকারী (অবশ্যই কিছুটা ফিডিং সহ) পেয়েছি।
Ando


5

আপনি জিও সার্ভারের বৈশিষ্ট্য নাম ডাব্লুএমএস অনুরোধ পরামিতি ব্যবহার করে এটি করতে পারেন:

http://docs.geoserver.org/stable/en/user/services/wms/vendor.html#propertyname


আমার জন্য এটি সেরা সমাধান! 1. খুব সহজ! ২. এমনকি আমার কাছে অন্যান্য অ্যাপ্লিকেশন থেকেও একটি সম্পূর্ণ বৈশিষ্ট্য ইনফো করার সম্ভাবনা রয়েছে। টেমপ্লেটগুলি দিয়ে এটি আর সম্ভব নয়! ৩. এবং সর্বশেষে তবে সর্বনিম্ন নয় নেটওয়ার্ক ট্র্যাফিক এর চেয়ে অনেক কম তারপর সম্পূর্ণ বৈশিষ্ট্যের জন্য অনুরোধ করা হচ্ছে! ট্যাঙ্ক-আপনি!
মার্সেল

0

আপনি ফ্রিমার্কার টেম্পলেটগুলিতে শর্তযুক্ত বিবৃতি যুক্ত করতে পারেন।

উদাহরণস্বরূপ আপনার কন্টেন্ট.ফুট ফাইলটিতে আপনি কেবল "YOUR_FIELDNAME" তালিকাতে এই জাতীয় কিছু যুক্ত করতে পারেন।

<#if attribute.name == "YOUR_FIELDNAME">
     <li>${attribute.name}: ${attribute.value}</li>
</#if>

বিকল্পভাবে আপনি এটি করে কোনও ক্ষেত্র বাদ দিতে পারেন:

<#if !attribute.name == "YOUR_FIELDNAME">
     <li>${attribute.name}: ${attribute.value}</li>
</#if>

-2

এই সম্পর্কে কি?

এছাড়াও, এই বৈশিষ্ট্যগুলি ফিরিয়ে আনার জন্য (এবং কেবল স্তরের নাম এবং বৈশিষ্ট্য আইডি নয়) আপনাকে আপনার ডাব্লুএমএসের মেটাডেটা বিভাগে "ow_incolve_items" "গুণাবলী 1, বৈশিষ্ট্য 2, ..., গুণমান" বা "ow_incolve_items" "সমস্ত" যুক্ত করতে হবে স্তর মানচিত্র ফাইল এন্ট্রি।

থেকে: http://trac.osgeo.org/openlayers/wiki/GetFeatureInfo


তবে রাডেক জিওসিভার ব্যবহার করে, ইউএমএন ম্যাপসভারটি নয়, সুতরাং কোনও মানচিত্রের ফাইল নেই।
আন্ডার ডার্ক

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