0
이 질문은 previous question과 관련됩니다.Mapbox에서 getLayer를 사용하여지도 소스 ID를 추출하는 방법은 무엇입니까?
지도 맵에는 버튼 목록이 있고, 값을 정렬하고 이에 따라 특정 레이어를 표시하는 jQuery 기능이 있습니다. 상호 작용의이 부분은 래스터 맵의 레이어를 표시하기 때문에 각 선택 항목에 fitBounds
이벤트가 필요합니다.
getLayer
을 사용하여 경계를 추출 할 수 있을지 궁금합니다. 각 레이어에 속성 배열을 제공하기 때문에 소스 링크를 추출해야하며 getBounds
과 함께 사용할 수 있습니다. 그러나 어떻게?
여기 내 코드가 있습니다.
$("#yearselect button").click(function(){
var mapnum = $.text(this);
if ($(this).hasClass("selected")) {
$(this).removeClass("selected");
map.setLayoutProperty(mapnum, "visibility", "none");
basicreset(); // resets other filters
yearreset(); // resets previous selections
}
else {
$(this).addClass("selected");
$("#yearselect button").not(this).removeClass("selected");
$("#typeselect input").prop("checked", true);
$("#yearselect button").each(function() {
map.setLayoutProperty(($.text(this)), "visibility", "none");
});
map.setLayoutProperty("railway", "visibility", "visible");
map.setLayoutProperty("railway case", "visibility", "visible");
map.setLayoutProperty("sat", "visibility", "visible");
map.setLayoutProperty(mapnum, "visibility", "visible");
map.setFilter("vislis-1sep2017", ["none", [">=", "Opening date", mapnum],["<=", "Closing date", mapnum], ["in", "Opening date", "Closing date", "??"]]);
map.setFilter("railway", ["none", [">", "Opening date", mapnum],["<", "Closing date", mapnum], ["in", "Opening date", "Closing date", "??"]]);
map.setFilter("railway case", ["none", [">", "Opening date", mapnum],["<", "Closing date", mapnum], ["in", "Opening date", "Closing date", "??"]]);
map.setPaintProperty("limits", "line-color", "#ffffff");
document.getElementById('active-year').innerText = mapnum; // updates time slider
document.getElementById('ranger').value = mapnum; // moves time slider's range
$("#resetslider").hide();
}
});
Perfect !! 고맙습니다! 매력처럼 작동합니다. 나는 Mapbox 함수를 캐스케이드 할 수 있다는 것을 몰랐다. – east1999