কোনও বিশাল ডেটাসেটের অংশগুলি দক্ষতার সাথে প্রদর্শন করতে লিফলেট কীভাবে ব্যবহার করবেন?


13

আমি নন-জিআইএস ওয়েব বিকাশকারীদের এই সমস্যায় পড়ে দেখছি এবং সমাধান কী তা আমি নিশ্চিত নই।

  1. কয়েক হাজার আইটেমের কিছু ডেটাসেট রয়েছে।
  2. আমরা ব্যবহারকারীর কাছে একটি মানচিত্র প্রদর্শন করতে চাই, এর দৃশ্যমান উপসেটটি ইন্টারেক্টিভ, ক্লিকযোগ্য উপাদান হিসাবে দেখানো হয়েছে।

এটি করার জন্য কোন পদ্ধতি রয়েছে?

আমি এগুলি ভাবতে পারি, তবে সেগুলি খুব সন্তোষজনক নয়, তাই আমি ভাবছি সেখানে আর কী আছে:

  1. একটি জিওজন ফাইলে সমস্ত ডেটা সঞ্চয় করুন, এটি ব্রাউজারে স্থানান্তর করুন এবং লিফলেটটি এটি প্রদর্শন করতে দিন। সমস্যা: বড় ডেটাসেটের সাথে সত্যিই কাজ করে না। টপোজেসন সীমাটি কিছুটা বাড়িয়েছে। এটি পৃষ্ঠা লোড এ বড় বিলম্ব ঘটায়।

  2. ম্যাপবক্সটি ব্যবহার করুন, ম্যাপবক্সে একটি ইন্টারেক্টিভ স্তরতে সমস্ত ডেটা সঞ্চয় করুন এবং এটি প্রদর্শিত করতে ম্যাপবক্স.জেএস ব্যবহার করুন। দুর্দান্ত কাজ করে তবে অর্থ ব্যয় হয় এবং আপনি নিজে এটি হোস্ট করতে পারবেন না।

  3. একটি পোস্টজিআইএস ডাটাবেস অ্যাক্সেস করতে জিও সার্ভার ব্যবহার করুন, সেখান থেকে ডেটা অ্যাক্সেস করতে ডাব্লুএফএস-জিওজসন লিফলেট প্লাগিন ব্যবহার করুন। এটি সম্ভবত কাজ করে তবে ডাব্লুএফএএস-জিওজসন লিফলেট প্লাগইনটি আর রক্ষণাবেক্ষণ করা হবে বলে মনে হয় না।

  4. কার্টোডিবি ব্যবহার করুন, একটি কার্ডোডিবি টেবিলের সমস্ত ডেটা সঞ্চয় করুন এবং এটি প্রদর্শিত করতে কার্টোডিবি.জে ব্যবহার করুন use দুর্দান্ত কাজ করে তবে খুব ব্যয়বহুল হতে পারে। এটি নিজে হোস্ট করা সম্ভব, তবে কার্টোডিবি ইনস্টল করা অ-তুচ্ছ বিষয়।

এই সবগুলি আমাকে ভাবতে বাধ্য করে যে এখানে আমি আরও কিছু নিখুঁত, নিখরচায় মিস করছি। এটা কি?

সম্পাদনা

সম্ভবত আমি খুব সহজেই ডাব্লুএফএস-জিওজসন প্লাগইনটি লিখেছিলাম। একটি কাঁটাচামচ রয়েছে যা এখনও কিছু কার্যকলাপ দেখে (4 মাস আগে): https://github.com/johanlahti/azgs-leaflet


1
শুধু জিএসনারের জন্য জিওসারবার ডাব্লুএফএস জিজ্ঞাসা করবেন?
ইয়ান Turton

ঠিক আছে, আমি যদি সঠিকভাবে বুঝতে পারি, আপনি যদি JSON এর জন্য কোনও হার্ডকোড প্রবেশ করে রেখেছেন তবে আপনি কেবলমাত্র সম্পূর্ণ একমাত্র জাসন ব্লব হিসাবে সম্পূর্ণ ডেটাসেটটি স্থানান্তর করতে বলছেন - ঠিক সমাধানের মতো 1. আপনার কাছে আবদ্ধ অনুরোধগুলি পেতে সত্যিকারের ডাব্লুএফএস দরকার বর্তমান ভিউপোর্টে, না?
স্টিভ বেনেট

ফিল্টার wfs মানচিত্রের সীমানা দ্বারা অনুরোধ (লিফলেটটি স্বয়ংক্রিয়ভাবে এটি করে না?)
ইয়ান টার্টন

এটি করার জন্য এটি ডাব্লুএফএসের কথা বলতে হবে, না? এবং আফিক যা কেবলমাত্র (রক্ষণাবেক্ষণ নয়) ডাব্লুএফএস-জিওজসন প্লাগইনে বিদ্যমান?
স্টিভ বেনেট

1
ডাব্লুএফএস এত কঠিন নয় - সম্ভবত লিফলেটটি ইস্যুটি>>
ইয়ান টার্টন

উত্তর:


4

ঠিক আছে, 2-এ আমার অনুমানগুলি ভুল ছিল। আপনি mapbox.js ব্যবহার করতে পারেন। শেষ ফলাফলটি কিছুটা আলাদা হবে, আমি বিশ্বাস করি - চিহ্নিতকারীরা নিজেরাই একটি স্ট্যাটিক রাস্টার স্তর হবে, তবে তারা ক্লিকযোগ্য হবে।

বৃহত্তর আন্তঃক্রিয়াশীলতার কাজ করে এমন বৈশিষ্টটি হ'ল https://github.com/mapbox/utfgrid-spec

এটি https://github.com/danzel/Leaflet.utfgrid (লিফলেট প্লাগইন) এবং ম্যাপবক্স.জেজে ক্লায়েন্টাইড প্রয়োগ করা হয়েছে।

সার্ভারসাইড এটি https://github.com/mapbox/tilelive.js এ প্রয়োগ করা হয়েছে এবং তাই টাইলমিল যেমন: http://tilemill-server/tile/projectname/7/115/78.grid.json

এটি টাইলস্ট্যাচেও প্রয়োগ করা হয়েছে, তবে টাইলস্ট्रीम বা এমবিটাইলস-সার্ভার নয়। ইউটিএফগ্রিডের ডেটা টাইলমিল দ্বারা এমবাটাইল ফাইলে সংরক্ষণ করা হয়েছে বলে মনে হয় তবে সেগুলি উপেক্ষা করা হয়।

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

তবে আপনি যদি ম্যাপবক্স.জেএস ব্যবহার করেন, তবে আমি যে ধাঁধা অনুপস্থিত তা এর এক বিট রয়েছে, এবং তা টাইলজসন। আপনি মানচিত্রবক্স.জসনকে আপনার মানচিত্রের সাথে সম্পর্কিত টাইলজসন ফাইলটি দিন।


1

এছাড়া লিফলেট-ভেক্টর-স্তর প্লাগইন যা postGIS পরিষেবার জন্য সমর্থন আছে http://jasonsanford.github.io/leaflet-vector-layers/demos/postgis-restful-web-service-framework/

এর চেহারা দিয়ে আপনি পরিষেবাটি ফিল্টার করতে পারেন।

আমি এই প্লাগইনটি আর্কজিআইএস পরিষেবাদির জন্য ব্যবহার করেছি এবং এটি সত্যিই ভাল হয়েছে।


0

আপনি যদি এখনও সমাধানটি খুঁজে না পান তবে এখানে একটি: http://gis.xyz/leaflet.html#

 var owsrootUrl = 'http://217.8.255.188:8080/geoserver/opengeo/ows';

 var defaultParameters = {
     service : 'WFS',
     version : '2.0',
     request : 'GetFeature',
     typeName : 'opengeo:evernote_geom',
     outputFormat : 'text/javascript',
     format_options : 'callback:getJson',
     SrsName : 'EPSG:4326'
};

var parameters = L.Util.extend(defaultParameters);
var URL = owsrootUrl + L.Util.getParamString(parameters);

var WFSLayer = null;
var ajax = $.ajax({
    url : URL,
    dataType : 'jsonp',
    jsonpCallback : 'getJson',
    success : function (response) {
       WFSLayer = L.geoJson(response, {
            style: function (feature) {
                return {
                    stroke: false,
                    fillColor: 'FFFFFF',
                    fillOpacity: 0
                };
            },
            onEachFeature: function (feature, layer) {
                popupOptions = {maxWidth: 600};
                layer.bindPopup('<h4>'+feature.properties.url+'</h4><br>'+feature.properties.title
                    ,popupOptions);
            }
        }).addTo(map);
    }
});

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