谷歌地图通过复选框改变风格
Google Maps change style via checkboxes
我尝试通过复选框动态更改谷歌地图的样式。有些控制功能的颜色,有些控制可见性。我不知道如何总结风格的特点,因为它们不是字符串
这是代码:
<!DOCTYPE html>
<html>
<head>
<title>JS Bin</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript">
var map;
function initialize() {
var myLatLng = new google.maps.LatLng(50.450, 30.522);
myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'), myOptions)
}
//checkboxes operation
$(window).load(function(){
$(document).ready(function () {
$('input[type=checkbox]').change(function () {
var checked = $(this).prop('checked');
var selected = $("input:checked").map(function(i,el){return el.value}).get();
//Show in HTML result
document.getElementById("SHOW").innerHTML = selected;
});
});
});
</script>
</head>
<body onload="initialize()">
<div id="map-canvas" style="width:500px;height:300px"></div>
Clear Labels<input type="checkbox" id="chkLbl" value='{"elementType": "labels", "stylers": [ { "visibility": "off" }]}'>
<br>Clear Borders<input type="checkbox" id="chkBrd" value='featureType: "all",elementType:"geometry.stroke",stylers:[{ visibility:"on"}]'>
<br>Change Water<input type="checkbox" id="chkBrd" value='{"featureType": "water", "stylers": [ { "visibility": "off" }]}'>
<p id="SHOW"></p>
</body>
</html>
各种问题:您不需要$(window).load,也不需要body onload,而且我认为"map"jquery函数和"get"函数都不是您想要的。此外,您的复选框有一个重复的id。
请参阅谷歌地图的javascript界面以进行处理:https://developers.google.com/maps/documentation/javascript/3.exp/reference#Map
部分清理代码:
<!DOCTYPE html>
<html>
<head>
<title>JS Bin</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript">
var map;
function initialize() {
var myLatLng = new google.maps.LatLng(50.450, 30.522);
myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'), myOptions)
}
function setMapStyle(id) {
var selected = $('#'+id).prop('checked');
// set your style object based on "chkLbl","chkBrd","chkH2O" and call map.setStyle();
$('#SHOW').html(/* whatever you're trying to show here*/);
}
//checkboxes operation
$(document).ready(function () {
initialize();
$('input[type=checkbox]').change(function () {
setMapStyle($(this).attr('id');
});
});
</script>
</head>
<body>
<div id="map-canvas" style="width:500px;height:300px"></div>
Clear Labels<input type="checkbox" id="chkLbl" value='{"elementType": "labels", "stylers": [ { "visibility": "off" }]}'>
<br>Clear Borders<input type="checkbox" id="chkBrd" value='featureType: "all",elementType:"geometry.stroke",stylers:[{ visibility:"on"}]'>
<br>Change Water<input type="checkbox" id="chkH2O" value='{"featureType": "water", "stylers": [ { "visibility": "off" }]}'>
<p id="SHOW"></p>
</body>
</html>
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- CKEditor-我在editor.css中的风格是't
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 为什么使用immutableJS我的状态没有改变
- onclick风格的整个李不想要
- JavaScript改变了双方的显示风格
- ACF谷歌地图-改变风格
- Hov 我用 javascript 改变风格,只影响第一个 ul
- 聚合物通过选择器改变风格
- 导航按钮点击改变风格效率
- 用HTML5改变polyfill的风格
- CSS通过JavaScript:更改类“;“中断”;通过风格的改变
- Java脚本-改变ASP的风格.. NET标签上的Page_Load
- 改变同一级别的第二级别的风格
- 我想知道如何改变特定灯光的风格.在一个特定的
- 通过javascript
- 无法用Javascript改变我网站的风格
- 通过使用getElementById改变风格背景属性
- 谷歌地图通过复选框改变风格
- 为什么我得到这个警告'不赞成改变“风格”'在react组件渲染