Leaflet haritasında tıklama etkinliği tetikleniyor mu?


15

Broşür haritasında belirli bir lat / lon'da bir tıklama etkinliğinin gerçekleştirilmesi mümkün müdür?

Belirli bir konumdaki bir nokta ile ilişkili bir açılır pencere görünür yapmak istiyorum.

Birkaç kombinasyonunu denedim map.fireEvent('click', latLon)ve map.fire('click', latLon)bu yaklaşımı tanımlayan bir örnek veya referans bulamıyorum. Bu yapılabilecek bir şey mi?

Denediğim (ve işe yarayan) bir yaklaşım, broşür katmanındaki nesneyi tanımlamak ve kullanarak bir tıklama olayını tetiklemektir layer[id].fireEvent('click'). Ancak, bu nesne kimliğini bilmek gerektirir ve ben sadece bu tıklamayı tetiklemek için bir lat / lon kullanabilmek istiyorum.


Tıklanan konumda bir pop-up açmak istiyorum ve bu yere bir işaretçi eklemek veya yeni bir pop-up eklemek istemiyorum. Ne yapmaya çalışıyorum bir nokta zaten mevcut belirli bir lat / lon bir tıklama olayı ateş ve zaten var olan pop-up tetiklemektir.

Yanıtlar:


21

Bence senin düşündüğünden daha karmaşık olduğunu düşünüyorsun!

Bunu dene:

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);

Kaynaklı mükemmel belgeler .

Şimdi ne yapmak istediğini biliyorum. Keyfi tıklanan bir konumda açılır pencereyi şu şekilde açabilirsiniz:

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);        
    });

Son düzenleme: Tasarımınızın bakılması gereken bir şey elde etmek için bir 'tıklama' etkinliği başlatmak istiyorsanız cidden düşünüyorum. Gerçekten yapmak istiyorsanız, javascript'te mümkün görünüyor . Yine de bu bir CBS sorusu değil.


Öneri için teşekkürler. Bir pop-up oluşturmadan bunu tetiklemenin mümkün olup olmadığını biliyor musunuz? Benim durumumda bir haritaya 70 puan ekliyorum (bir pop-up bağlayıcı) ve bu pop-up'lardan birini daha sonra tetiklemek istiyorum.
djq

Tüm pop-up'ları oluşturabilir, bir şekilde / nerede saklayabilir ve ardından bunları haritada açabilirsiniz. Belgeleri okuyun ve deneyin. Ne yapmaya çalıştığını anlamıyorum. Belki de bitiş noktanızı tanımlamak için sorunuzu düzenlemelisiniz?
Alex Leith

Bir dizide saklanırsa açılır pencereyi nasıl açacağımı anlıyorum, haritadaki bir yere tıklayarak açmayı denemek istiyorum. Soruda bunu daha netleştirmeye çalışacağım.
djq

Bir tıklamaya en yakın pop-up'ı açmak ister misiniz? Veya tıklanan konumda bir pop-up mı açıyorsunuz? Ve kalem istemez misin?
Alex Leith

Tıklanan konumda bir pop-up açmak istiyorum ve işaretçi istemiyorum.
djq

1

Kullanıcıların bana bir haritadaki tıklanan konuma göre özellik istekleri göndermelerine izin vermek için bir broşür haritasındaki diğer yanıtı kullanıyorum , daha sonra bu konumdan en sonuncusu ile önceden doldurulmuş bir google formu açılıyor. Bu noktalar daha sonra sayfa / tablo kullanılarak harita üzerinde gösterilir. Bir harita.hasLayer (isteklerim katmanı) ekledim, böylece harita tıklandığında kullanıcı her zaman pop-up'ı görmez:

    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);
    }
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.