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


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.