Javascript 切换图层时图形图层的顺序/保持比例/
我的教授希望我在代码中纠正两件事。第一个是我需要在泛洪平原层的顶部绘制RU剩余层,以便所有剩余层都可见。第二,在我的代码中似乎有一个东西,当你切换漫滩图层时,它会重置地图的比例,如果没有发生这种情况,我会更喜欢。这是我的密码:Javascript 切换图层时图形图层的顺序/保持比例/,javascript,html,google-maps,Javascript,Html,Google Maps,我的教授希望我在代码中纠正两件事。第一个是我需要在泛洪平原层的顶部绘制RU剩余层,以便所有剩余层都可见。第二,在我的代码中似乎有一个东西,当你切换漫滩图层时,它会重置地图的比例,如果没有发生这种情况,我会更喜欢。这是我的密码: <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"&
<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>
切换
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px
}
#面板{
位置:绝对位置;
顶部:5px;
左:50%;
左边距:-180px;
z指数:5;
背景色:#fff;
填充物:5px;
边框:1px实心#999;
}
var叠加;
var映射;
var-url;
var-dynamap;
函数初始化(){
变量映射选项={
缩放:13,
中心:新google.maps.LatLng(37.1276,-80.56895),
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
url='1〕http://geog-grant.radford.edu/arcgiscloud/rest/services/RU/MapServer';
dynamap=newgmaps.ags.MapOverlay(url);
overlay=new google.maps.kmlayer({
网址:'http://www.radford.edu/kblakemore/KML_Layer_Severity/KML_Floodplain_Radford/doc.kml'
});
}
函数toggleFloodplain(){
overlay.setMap(overlay.getMap()?null:map);
}
函数toggleRUrest(){
setMap(dynamap.getMap()?null:map);
}
window.onload=初始化;
弗吉尼亚州雷德福德河漫滩
漫滩
拨动滑轨
您必须为dynamap使用另一个地图窗格
地图窗格在已使用的库中硬编码(第2796行):
使用例如markerLayer
而不是overlayer
要更改它,您必须直接更改库或覆盖
MapOverlay.prototype.onAdd
(这是分配窗格的函数)您尝试了什么?出了什么问题?你做了什么研究?这个网站不是为你做这些工作的…对不起,它不是为你这样做的。我只是在寻找一个前进的方向。这是我第一次使用js和html进行编码(很少使用java,但它帮助我创建了为切换实现的函数)。我已经看过了google地图的javascript api和javascrpit的arcGIS api。我在arcGIS javascript中找到了“在地图服务中重新排列图层”文档。其内容为“若要重新排列图层,请单击图层名称并将其拖动到新位置。当图层名称被拖放到列表中的新位置时,会请求获取更新的地图图像。我尝试了此操作,但没有更改任何内容。是因为一个图层是动态地图图层,而另一个图层是KML吗?您关于保留视口的问题(不缩放以适应Kmlayer)是使用的preserveViewport:true
选项。(这是其他几个类似问题的重复)
panes.overlayLayer.appendChild(div);