Skip to content

Instantly share code, notes, and snippets.

@jsanz
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jsanz/4537a305e4e9d207b3bf to your computer and use it in GitHub Desktop.
Save jsanz/4537a305e4e9d207b3bf to your computer and use it in GitHub Desktop.
CartoDB.JS: Error on IE9
<!DOCTYPE html>
<html>
<head>
<title>Named Map with Interactivity | CartoDB.js</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="shortcut icon" href="http://cartodb.com/assets/favicon.ico" />
<style>
html, body, #map {
height: 100%;
padding: 0;
margin: 0;
}
</style>
<link rel="stylesheet" href="http://libs.cartocdn.com/cartodb.js/v3/3.15/themes/css/cartodb.css" />
</head>
<body>
<div id="map"></div>
<!-- include cartodb.js library -->
<script type="text/javascript" src="http://www.maps.google.com/maps/api/js?sensor=false&v=3.12"></script>
<script src="http://libs.cartocdn.com/cartodb.js/v3/3.15/cartodb.js"></script>
<script>
function main() {
var map;
var mapOptions;
mapOptions = {
zoom: 13,
center: new google.maps.LatLng(47.49995, 8.73756),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
};
// GOOGLE MAP
map = new google.maps.Map(document.getElementById('map'), mapOptions);
var namedLayerSource = {
user_name: 'admindev',
type: 'namedmap',
auth_token: "webappkey",
named_map: {
name: "searchandbrowse3",
layers: [
{
layer_name: "op_area",
interactivity: "cartodb_id, op_area_id"
},
{
layer_name: "tariffzone",
interactivity: "cartodb_id"
},
{
layer_name: "provider_intertour",
interactivity: "cartodb_id, providerid"
},
{
layer_name: "provider_porsche",
interactivity: "cartodb_id, providerid"
},
{
layer_name: "provider_renault",
interactivity: "cartodb_id, providerid"
},
{
layer_name: "provider_nissan",
interactivity: "cartodb_id, providerid"
}
]
}
};
// add cartodb layer with one sublayer
cartodb.createLayer(map, namedLayerSource, {https:true})
.addTo(map)
.done(function(layer) {
// Enable interactions events for all sublayers
for (var i = 0; i < layer.getSubLayerCount(); ++i ) {
layer.getSubLayer(i).on('featureClick', function(e, pos, pixel, data) {
console.log("Event #" + data.cartodb_id + ", name " + data.name);
layer.setParams("selectedprovider", data.providerid);
});
layer.getSubLayer(0).hide();
layer.getSubLayer(2).hide();
layer.getSubLayer(1).hide();
layer.getSubLayer(4).hide();
layer.getSubLayer(5).hide();
cdb.vis.Vis.addInfowindow(map,layer.getSubLayer(i),['cartodb_id']);
}
console.log(layer.getSubLayerCount());
var toggle = false;
$(".showhide").on('click', function(e) {
var layerNum = +$(e.target).attr('data');
toggle = layer.getSubLayer(layerNum).toggle();
console.log("layer " + layerNum + " toggled: " + toggle);
});
})
.error(function(err) {
console.log("error: " + err);
});
}
window.onload = main;
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment