লিফলেট মানচিত্রে ক্লিক ইভেন্ট ট্রিগার করছেন?


15

লিফলেট মানচিত্রে কোনও নির্দিষ্ট লেট / লম্বায় কোনও ক্লিক ইভেন্ট ঘটানো সম্ভব?

আমি একটি পপআপ হাজির করতে চাই যা নির্দিষ্ট কোনও স্থানের সাথে সম্পর্কিত।

আমি বেশ কয়েকটি সংমিশ্রণের চেষ্টা করেছি map.fireEvent('click', latLon)এবং map.fire('click', latLon)তবে এই পদ্ধতির বর্ণনা দিয়ে আমি কোন উদাহরণ বা রেফারেন্স পাই না। এটি কি কিছু করা যায় যা করা যায়?

একটি পদ্ধতির যা আমি চেষ্টা করেছি (এবং যা কাজ করে) তা হ'ল লিফলেট স্তরটিতে অবজেক্টটি সনাক্ত করা এবং ব্যবহারের মাধ্যমে একটি ক্লিক ইভেন্ট ট্রিগার করা layer[id].fireEvent('click')। যাইহোক, এর জন্য এটি প্রয়োজন যে আমি অবজেক্ট আইডি জানি এবং আমি এই ক্লিকটি ট্রিগার করতে কেবল একটি ল্যাট / লম্বা ব্যবহার করতে সক্ষম হতে চাই।


আমি ক্লিক করা স্থানে একটি পপআপ খুলতে চাই এবং আমি এই স্থানটিতে কোনও মার্কার যুক্ত করতে বা একটি নতুন পপআপ যুক্ত করতে চাই না। আমি যা করার চেষ্টা করছি তা হল নির্দিষ্ট লেট / লম্বায় একটি ক্লিক ইভেন্ট ফায়ার করা যেখানে একটি পয়েন্ট ইতিমধ্যে বিদ্যমান এবং ইতিমধ্যে বিদ্যমান পপআপটিকে ট্রিগার করা।

উত্তর:


21

আমি মনে করি যে আপনি যা ভাবেন এটি আপনার জটিলতার চেয়ে জটিল!

এটা চেষ্টা কর:

var popLocation= new L.LatLng(-42.8585,147.2468);
var popup = L.popup()
    .setLatLng(popLocation)
    .setContent('<p>Hello world!<br />This is a nice popup.</p>')
    .openOn(map);

চমৎকার ডকুমেন্টেশন থেকে উত্সাহিত ।

আমি জানি আপনি এখন কী করতে চান। এখানে আপনি কীভাবে একটি স্বেচ্ছাসেবী ক্লিক ক্লিকের জায়গায় পপআপ খুলতে পারেন তা এখানে:

map.on('click', function(e) {        
        var popLocation= e.latlng;
        var popup = L.popup()
        .setLatLng(popLocation)
        .setContent('<p>Hello world!<br />This is a nice popup.</p>')
        .openOn(map);        
    });

চূড়ান্ত সম্পাদনা: আমি গুরুত্ব সহকারে মনে করি যে আপনার ডিজাইনের দিকে নজর দেওয়া দরকার এমন কিছু অর্জন করতে যদি আপনি 'ক্লিক' ইভেন্টটিকে চালিত করতে চান। আপনি যদি সত্যিই এটি করতে চান তবে জাভাস্ক্রিপ্টে এটি সম্ভব বলে মনে হচ্ছে । যদিও এটি জিআইএসের প্রশ্ন নয়।


পরামর্শের জন্য তোমাকে ধন্যবাদ। আপনি কি জানেন যে এটি পপআপ তৈরি না করেই ট্রিগার করা সম্ভব কিনা? আমার ক্ষেত্রে আমি একটি মানচিত্রে (পপআপকে আবদ্ধ করা) 70 পয়েন্ট যুক্ত করব এবং পরে এই পপআপগুলির মধ্যে একটি ট্রিগার করতে চাই।
djq

আপনি সমস্ত পপআপগুলি তৈরি করতে পারেন, সেগুলি কোনওভাবে / যেখানে সঞ্চয় করতে পারেন, তারপরে এগুলি কেবল মানচিত্রে খুলুন। ডকুমেন্টেশন পড়ুন এবং এটি ব্যবহার করে দেখুন। আপনি কী করতে চাইছেন তা আমি বুঝতে পারি না। আপনার শেষ-পয়েন্টটি সংজ্ঞায়িত করার জন্য আপনার নিজের প্রশ্নটি সম্পাদনা করা উচিত?
অ্যালেক্স লেথ

আমি বুঝতে পারি কীভাবে পপআপটি খুলতে হয় যদি এটি কোনও অ্যারেতে সঞ্চিত থাকে তবে আমি মানচিত্রের কোনও জায়গায় ক্লিক করার উপর ভিত্তি করে এটি খোলার চেষ্টা করতে চাই। আমি চেষ্টা করব এবং প্রশ্নে এই পরিষ্কার করব।
djq

সুতরাং আপনি কি ক্লিকে নিকটতম পপআপ খুলতে চান? বা ক্লিক করা স্থানে একটি পপআপ খুলবেন? এবং আপনি কি মার্কার চান না?
অ্যালেক্স লেথ

আমি ক্লিক করা স্থানে একটি পপআপ খুলতে চাই এবং আমি চিহ্নিতকারী চাই না।
ডিজেকিউ

1

আমি অন্য লিফলেট মানচিত্রে অন্য উত্তরটি ব্যবহার করছি যাতে ব্যবহারকারীরা আমাকে কোনও মানচিত্রে ক্লিক করা অবস্থানের ভিত্তিতে বৈশিষ্ট্য অনুরোধগুলি প্রেরণ করতে দেয়, যা সেই অবস্থান থেকে দীর্ঘস্থায়ী একটি প্রাক-ভর্তি গুগল ফর্ম খোলায়। এই পয়েন্টগুলি তখন শীটসি / ট্যাবলেটআপ ব্যবহার করে মানচিত্রে প্রদর্শিত হবে। আমি একটি মানচিত্র যুক্ত করেছি hasএল লাইয়ার (আমার অনুরোধ স্তর) যাতে ব্যবহারকারী সর্বদা মানচিত্রটি ক্লিক করার সময় পপআপটি দেখেন না:

    map.on('click', function(e) { 
    if (map.hasLayer(requests)) {
        var requestform = e.latlng;
        var formpopup = L.popup();
        .setLatLng(requestform)
        .setContent('<a href=" google form ' + e.latlng.lat + 
                    '" target="_blank">Form</a>') 
        .openOn(map);
    }
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.