2014-09-22 3 views
-1

교수님이 내 코드에서 수정 해 주길 바라는 두 가지 사항이 있습니다. 처음에는 RU 나머지 레이어를 내 범람원 레이어 위에 그려야 모든 나머지 레이어를 볼 수 있습니다. 그리고 두 번째로 floodplain 레이어를 토글 할 때지도의 크기를 재설정하는 코드가 내 코드에있는 것 같습니다. 이렇게하지 않으면 선호합니다. 여기에 내 코드가있다 :레이어 그리기 순서/레이어 토글시 스케일 유지/

<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <title>Toggle</title> 
    <style> 
     html, body, #map-canvas { 
     height: 100%; 
     margin: 0px; 
     padding: 0px 
     } 
     #panel { 
     position: absolute; 
     top: 5px; 
     left: 50%; 
     margin-left: -180px; 
     z-index: 5; 
     background-color: #fff; 
     padding: 5px; 
     border: 1px solid #999; 
     } 
    </style> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 
    <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn-history/r172/trunk/arcgislink/src/arcgislink.js"></script> 

    <script> 

var overlay; 
var map; 
var url; 
var dynamap; 

function initialize() { 
    var mapOptions = { 
    zoom: 13, 
    center: new google.maps.LatLng(37.1276, -80.56895), 

    }; 

map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions); 

url = 'http://geog-grant.radford.edu/arcgiscloud/rest/services/RU/MapServer'; 
    dynamap = new gmaps.ags.MapOverlay(url); 

overlay = new google.maps.KmlLayer({ 
    url: 'http://www.radford.edu/kblakemore/KML_Layer_Severity/KML_Floodplain_Radford/doc.kml' 
    }); 


} 

function toggleFloodplain() { 
overlay.setMap(overlay.getMap() ? null : map); 
} 

function toggleRUrest() { 
    dynamap.setMap(dynamap.getMap() ? null : map); 
} 


window.onload = initialize; 


    </script> 

    </head> 
    <body> 
    <div id ="panel"> 

     <p> Floodplains Radford, Virginia </p> 
     <input id= "toggle" type="checkbox" value="toggleFloodplain"  onclick="toggleFloodplain();"> Floodplains </input> 
     <input id= "toggle" type="checkbox" value="toggleRUrest" onclick="toggleRUrest()">Toggle  RUrest</button> 
    </div> 
    <div id="map-canvas"></div> 
    </body> 

</html> 
+1

당신이 무엇을하려고 않았다 (즉, 창 할당 될 함수의)? 뭐가 잘못 됐어? 무슨 연구를 했니? 이 사이트는 당신을 위해 일을하기위한 것이 아닙니다. ... – bobbyg603

+0

미안하지만 그런 식으로 벗어나지는 않았습니다. 나는 단지 js와 html (자바에 대한 경험이 거의 없지만 토글을 위해 구현 한 함수를 만드는 데 도움이되었다.)로 코딩하는 것은 처음이다. 나는 javascrpit을위한 구글 맵스와 arcGIS API를위한 자바 스크립트 API를 보았다. arcGIS 자바 스크립트에서 "지도 서비스의 레이어 순서 변경"설명서를 찾았습니다. 레이어를 다시 정렬하려면 레이어 이름을 클릭하고 드래그하여 레이어 이름을 새 위치로 놓으면 업데이트 된 맵 이미지를 요청합니다. –

+0

시도해 보았습니다. 한 레이어가 동적 인지도 레이어이고 다른 레이어가 KML 인 이유가 무엇입니까? –

답변

0

당신은 dynamap를위한 다른지도 창을 사용해야한다.

지도에 패널이 사용되는 라이브러리에서 하드 코드 (라인 2796)

panes.overlayLayer.appendChild(div); 

사용 예 대신 overlayLayer

markerLayer 당신이 직접 라이브러리를 변경하거나 MapOverlay.prototype.onAdd을 덮어 써야 중 하나를 변경할 수 있도록

관련 문제