谷歌地图多边形显示/隐藏与复选框切换
Google Maps polygon show/hide toggle with checkbox
我正在尝试使用复选框输入做一个简单的多边形开/关切换,但我无法使以下代码工作。我在谷歌上搜索了一下,找到了一些解决方案,但没有一个对我有效。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style>html, body, #map-canvas{height: 100%; margin: 0px; padding: 0px; height: 590px;} </style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function toggleLayer(firLayer,id)
{
if ($('#'+id).is(':checked')) {
firLayer.setMap(map);
}
else
{
firLayer.setMap(null);
}
}
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(-14.886436490787712, -47.2685546875),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var firCTB = [
new google.maps.LatLng(1.03333333, -40.98333333),
new google.maps.LatLng(-2.00000000, -34.95000000),
new google.maps.LatLng(-0.10000000, -42.00000000),
new google.maps.LatLng(1.03333333, -40.98333333)
];
// Fir Ctb
drawCtb = new google.maps.Polygon({
path: firCTB,
strokeColor: '#FFAA00',
strokeOpacity: 0.8,
strokeWeight: 3,
fillOpacity: 0.1
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
<input id="fir_curitiba" type="checkbox" onClick="toggleLayer(drawCtb,'fir_curitiba')" /> Mostrar FIR Curitiba
</body>
</html>
任何帮助将不胜感激,谢谢!
我看到两个问题。首先,看起来您没有包含jQuery,所以没有定义$
。此外,在toggleLayer(firLayer,id)
中,您试图使用不在作用域中(不会定义)的map
。
已更新:要修复第二个问题,您可以像这样移动map
声明(已更新以显示完整源代码)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style>html, body, #map-canvas{height: 100%; margin: 0px; padding: 0px; height: 590px;} </style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<!-- Include jQuery -->
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
// Move map declaration
var map;
function toggleLayer(firLayer,id)
{
if ($('#'+id).is(':checked')) {
firLayer.setMap(map);
}
else
{
firLayer.setMap(null);
}
}
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(-14.886436490787712, -47.2685546875),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
// Set map
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var firCTB = [
new google.maps.LatLng(1.03333333, -40.98333333),
new google.maps.LatLng(-2.00000000, -34.95000000),
new google.maps.LatLng(-0.10000000, -42.00000000),
new google.maps.LatLng(1.03333333, -40.98333333)
];
// Fir Ctb
drawCtb = new google.maps.Polygon({
path: firCTB,
strokeColor: '#FFAA00',
strokeOpacity: 0.8,
strokeWeight: 3,
fillOpacity: 0.1
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
<input id="fir_curitiba" type="checkbox" onClick="toggleLayer(drawCtb,'fir_curitiba')" /> Mostrar FIR Curitiba
</body>
</html>
相关文章:
- 显示隐藏复选框
- jquery单击隐藏的复选框
- 在jsTree中隐藏复选框
- 如何从django表单库中隐藏复选框,并使用Javascript切换其显示属性
- 基于复选框隐藏/显示表格行
- 使用jQuery切换根据选中的复选框隐藏/显示表单提交按钮 - 如何设置默认关闭的提交按钮
- 如何在 Yii javascript 中使用复选框隐藏或显示文本字段
- 根据选定的复选框隐藏/显示内容
- 如何使用复选框隐藏和显示jquery数据表中的行
- 使用复选框隐藏我的数据时出现问题
- 复选框隐藏,除非选择了下拉值
- 通过复选框隐藏/显示文本区域,这些复选框具有不同部分的相同类
- 动态复选框隐藏动态输入框
- 如何使用自定义复选框隐藏网格列
- 通过复选框隐藏表格
- JQuery数组's和输入复选框+隐藏
- 使用复选框隐藏多个表单字段
- Symfony 2.3如何通过复选框隐藏/显示图像
- 使用复选框隐藏/显示基于类别的谷歌地图标记's
- 使用 JavaScript 确定复选框 + 隐藏字段组合的值