전단지지도에서 클릭 이벤트를 트리거 하시겠습니까?


15

전단지지도의 특정 위도 / 경도에서 클릭 이벤트가 발생할 수 있습니까?

특정 위치의 지점과 관련된 팝업을 표시하고 싶습니다.

나는 여러 조합을 시도 map.fireEvent('click', latLon)하고를 map.fire('click', latLon)하지만 난이 방법을 설명하는 예 또는 참조를 찾을 수 없습니다. 이것이 할 수있는 일입니까?

내가 시도하고 작동하는 한 가지 접근법은 전단지 레이어에서 객체를 식별하고을 사용하여 클릭 이벤트를 트리거하는 것 layer[id].fireEvent('click')입니다. 그러나 이것은 객체 ID를 알아야하며 위도 / 경도를 사용 하여이 클릭을 트리거 할 수 있기를 원합니다.


클릭 한 위치에서 팝업을 열고 싶습니다.이 위치에서 마커를 추가하거나 새 팝업을 추가하고 싶지 않습니다. 내가하려고하는 것은 포인트가 이미 존재하는 특정 위도 / 경도에서 클릭 이벤트를 시작하고 이미 존재하는 팝업을 트리거하는 것입니다.

답변:


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

최종 편집 : 나는 당신이 당신의 디자인을 볼 필요가있는 것을 달성하기 위해 '클릭'이벤트를 시작하려면 진지하게 생각합니다. 정말로하고 싶다면 javascript에서 가능해 보입니다 . 그러나 GIS 질문은 아닙니다.


제안 해 주셔서 감사합니다. 팝업을 생성하지 않고이를 트리거 할 수 있는지 알고 있습니까? 필자의 경우 맵에 70 포인트를 추가하고 (팝업 바인딩) 나중에이 팝업 중 하나를 트리거하려고합니다.
djq

모든 팝업을 생성하고 어떻게 든 위치에 저장 한 다음지도에서 열 수 있습니다. 설명서를 읽고 사용해보십시오. 당신이하려는 일을 이해하지 못합니다. 엔드 포인트를 정의하기 위해 질문을 편집해야합니까?
Alex Leith

팝업이 배열에 저장된 경우 팝업을 여는 방법을 알고 있습니다.지도에서 특정 위치를 클릭하여 팝업을 열어보고 싶습니다. 나는 질문에서 이것을 분명히하려고 노력할 것이다.
djq

클릭에 가장 가까운 팝업을 열고 싶습니까? 또는 클릭 한 위치에서 팝업을여시겠습니까? 그리고 당신은 마커를 원하지 않습니까?
Alex Leith

클릭 한 위치에서 팝업을 열고 싶습니다. 마커를 원하지 않습니다.
djq

1

전단지지도에서 다른 답변 을 사용하여 사용자가지도에서 클릭 한 위치를 기반으로 기능 요청을 보낼 수 있습니다. 그러면 해당 위치에서 위도 시간이 긴 미리 채워진 Google 양식이 열립니다. 그런 다음 해당 지점은 sheetsee / tabletop을 사용하여지도에 표시됩니다. map.hasLayer (my requests layer)를 추가하여 맵을 클릭 할 때 사용자에게 항상 팝업이 표시되는 것은 아닙니다.

    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.