2014-11-04 5 views

답변

2

당신은 타일 이미지를 조작 할 수있다 Jquery를 사용해야합니다.

+0

감사합니다. iH8! ** tileloadstart **를 포함하도록 코드를 약간 편집했습니다. 다음 업데이트는 다음과 같습니다'esriGray.on ('tileload, tileloadstart', 기능 (tileEvent) { \t \t tileEvent.tile.setAttribute ('고도', '지도 타일 이미지'); \t \t});' – geospatialem

+0

문제 없음 항상 환영합니다. 그러나 tileloadstart 이벤트에서 alt 속성을 설정해야하는 이유에 대해 설명 할 수 있습니까? 내게 쓸데없는 것 같아 ... – iH8

+1

좋은 지적, 그들은 중복됩니다. ** tileload ** 이벤트는 초기 타일로드에서만 작동하지만 ** tileloadstart ** 이벤트는 초기로드 및 후속 타일로드를 처리하는 것으로 보입니다. 따라서 초기 코드를 ** 'tileloadstart'**로 바꾸고 트릭을 수행하십시오. – geospatialem

0

맵로드시 액세스 할 수있는 타일 솔루션은 아래에 나와 있지만 확대/축소 할 때 타일에 대한 해결책은 이 아니며 현재는입니다.

참고 : 아래 해결책은 jQuery를 참조하므로 코드에서 jQuery의 JavaScript를 참조하고 있는지 확인하십시오.

베이스 맵 변수, 예컨대을 : 설정 한 후
var esriGray = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}', { 
    attribution: 'Map Tiles © Esri — Esri, DeLorme, NAVTEQ', 
    maxZoom: 16 
}); 

는 리플릿 타일 창 속성을주는 jQuery를 문서 준비 기능을 추가합니다. 다음으로 각지도 타일이 '지도 타일 이미지'및 해당 색인 번호로 참조됨을 나타내는 함수를 트리거합니다.

참고 :이 솔루션은 응용 프로그램이로드되고 사용자가 확대/축소하면 즉시 대체 이미지가 사라집니다.

esriGray.on('tileload', function (tileEvent) { 
    tileEvent.tile.setAttribute('alt', 'Map tile image'); 
}); 

이미지가 항상 ALT 태그가 그런 식으로도 줌/팬 후 당신이 돈 '그들이 tileload 이벤트에 접선에 의해로드 할 때

$(document).on('ready', function(){ 
    addMapTileAttr('.leaflet-tile-pane img') 
}); 

function addMapTileAttr(styleClass) { 
    var selector = $(styleClass); 
    selector.each(
    function(index) { 
     $(this).attr('alt',"Map tile image " + index); 
    }); 
}