The simplest possible Tangram setup.
Forked from https://github.com/tangrams/simple-demo
license: mit |
The simplest possible Tangram setup.
Forked from https://github.com/tangrams/simple-demo
<!doctype html> | |
<!-- | |
Tangram: real-time WebGL rendering for OpenStreetMap | |
http://github.com/tangrams/tangram | |
http://mapzen.com | |
--> | |
<html lang="en-us"> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | |
<title>Simple demo – Tangram</title> | |
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.1/dist/leaflet.css" /> | |
<style> | |
body { | |
margin: 0px; | |
border: 0px; | |
padding: 0px; | |
} | |
#map { | |
height: 100%; | |
width: 100%; | |
position: absolute; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="map"></div> | |
<!-- leaflet --> | |
<script src="https://unpkg.com/leaflet@1.0.1/dist/leaflet.js"></script> | |
<!-- Main tangram library --> | |
<script src="https://mapzen.com/tangram/0.10/tangram.min.js"></script> | |
<!-- Demo setup --> | |
<script> | |
var map = L.map('map'); | |
var layer = Tangram.leafletLayer({ | |
scene: 'scene.yaml', | |
attribution: '<a href="https://mapzen.com/tangram" target="_blank">Tangram</a> | © OSM contributors | <a href="https://mapzen.com/" target="_blank">Mapzen</a>' | |
}); | |
layer.addTo(map); | |
map.setView([40.70531887544228, -74.00976419448853], 15); | |
</script> | |
</body> | |
</html> |
The MIT License (MIT) | |
Copyright (c) 2014 Mapzen | |
Permission is hereby granted, free of charge, to any person obtaining a copy of | |
this software and associated documentation files (the "Software"), to deal in | |
the Software without restriction, including without limitation the rights to | |
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | |
the Software, and to permit persons to whom the Software is furnished to do so, | |
subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | |
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | |
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
cameras: | |
camera1: | |
type: perspective | |
lights: | |
light1: | |
type: directional | |
direction: [0, 1, -.5] | |
diffuse: .3 | |
ambient: 1 | |
sources: | |
osm: | |
type: TopoJSON | |
url: https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.topojson?api_key=mapzen-QF1osLn | |
max_zoom: 16 | |
layers: | |
earth: | |
data: { source: osm } | |
draw: | |
polygons: | |
order: function() { return feature.sort_rank; } | |
color: '#ddeeee' | |
landuse: | |
data: { source: osm } | |
draw: | |
polygons: | |
order: function() { return feature.sort_rank; } | |
color: '#aaffaa' | |
water: | |
data: { source: osm } | |
draw: | |
polygons: | |
order: function() { return feature.sort_rank; } | |
color: '#88bbee' | |
roads: | |
data: { source: osm } | |
filter: | |
not: { kind: [path, rail, ferry] } | |
draw: | |
lines: | |
order: function() { return feature.sort_rank; } | |
color: gray | |
width: 8 | |
cap: round | |
highway: | |
filter: | |
kind: highway | |
draw: | |
lines: | |
order: function() { return feature.sort_rank; } | |
color: '#cc6666' | |
width: 12 | |
outline: | |
color: grey | |
width: 1.5 | |
minor_road: | |
filter: | |
kind: minor_road | |
draw: | |
lines: | |
order: function() { return feature.sort_rank; } | |
color: lightgrey | |
width: 5 | |
buildings: | |
data: { source: osm } | |
draw: | |
polygons: | |
order: function() { return feature.sort_rank; } | |
color: | | |
function () { | |
var h = feature.height || 20; | |
h = Math.min((h + 50)/ 255, .8); // max brightness: .8 | |
h = Math.max(h, .4); // min brightness: .4 | |
return [h, h, h]; | |
} | |
3d-buildings: | |
filter: { $zoom: { min: 15 } } | |
draw: | |
polygons: | |
extrude: function () { return feature.height > 20 || $zoom >= 16; } |