Skip to content

Instantly share code, notes, and snippets.

@staeff
Last active February 6, 2017 21:48
Show Gist options
  • Save staeff/98fd971385667bf96216 to your computer and use it in GitHub Desktop.
Save staeff/98fd971385667bf96216 to your computer and use it in GitHub Desktop.
leaflet examples
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script src="bicycleRental.json" type="text/javascript"></script>
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([39.74739, -105], 13);
L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'examples.map-20v6611k'
}).addTo(map);
function onEachFeature(feature, layer) {
var popupContent = "<p>I started out as a GeoJSON " +
feature.geometry.type + ", but now I'm a Leaflet vector!</p>";
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
L.geoJson(bicycleRental, {
style: function (feature) {
return feature.properties && feature.properties.style;
},
onEachFeature: onEachFeature,
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, {
radius: 8,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
}
}).addTo(map);
</script>
</body>
</html>
Display the source blob
Display the rendered blob
Raw
var bicycleRental = {
"type": "FeatureCollection",
"features": [
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9998241,
39.7471494
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 51
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9983545,
39.7502833
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 52
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9963919,
39.7444271
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 54
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9960754,
39.7498956
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 55
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9933717,
39.7477264
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 57
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9913392,
39.7432392
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 58
},
{
"geometry": {
"type": "Point",
"coordinates": [
-104.9788452,
39.6933755
]
},
"type": "Feature",
"properties": {
"popupContent": "This is a B-Cycle Station. Come pick up a bike and pay by the hour. What a deal!"
},
"id": 74
}
]
};
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script src="campus.json" type="text/javascript"></script>
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([39.74739, -105], 13);
L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'examples.map-20v6611k'
}).addTo(map);
function onEachFeature(feature, layer) {
var popupContent = "<p>I started out as a GeoJSON " +
feature.geometry.type + ", but now I'm a Leaflet vector!</p>";
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
L.geoJson(campus, {
style: function (feature) {
return feature.properties && feature.properties.style;
},
onEachFeature: onEachFeature,
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, {
radius: 8,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
}
}).addTo(map);
</script>
</body>
</html>
var campus = {
"type": "Feature",
"properties": {
"popupContent": "This is the Auraria West Campus",
"style": {
weight: 2,
color: "#999",
opacity: 1,
fillColor: "#B0DE5C",
fillOpacity: 0.8
}
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-105.00432014465332, 39.74732195489861],
[-105.00715255737305, 39.74620006835170],
[-105.00921249389647, 39.74468219277038],
[-105.01067161560059, 39.74362625960105],
[-105.01195907592773, 39.74290029616054],
[-105.00989913940431, 39.74078835902781],
[-105.00758171081543, 39.74059036160317],
[-105.00346183776855, 39.74059036160317],
[-105.00097274780272, 39.74059036160317],
[-105.00062942504881, 39.74072235994946],
[-105.00020027160645, 39.74191033368865],
[-105.00071525573731, 39.74276830198601],
[-105.00097274780272, 39.74369225589818],
[-105.00097274780272, 39.74461619742136],
[-105.00123023986816, 39.74534214278395],
[-105.00183105468751, 39.74613407445653],
[-105.00432014465332, 39.74732195489861]
],[
[-105.00361204147337, 39.74354376414072],
[-105.00301122665405, 39.74278480127163],
[-105.00221729278564, 39.74316428375108],
[-105.00283956527711, 39.74390674342741],
[-105.00361204147337, 39.74354376414072]
]
],[
[
[-105.00942707061768, 39.73989736613708],
[-105.00942707061768, 39.73910536278566],
[-105.00685214996338, 39.73923736397631],
[-105.00384807586671, 39.73910536278566],
[-105.00174522399902, 39.73903936209552],
[-105.00041484832764, 39.73910536278566],
[-105.00041484832764, 39.73979836621592],
[-105.00535011291504, 39.73986436617916],
[-105.00942707061768, 39.73989736613708]
]
]
]
}
};
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script>
var coorsField = {
"type": "Feature",
"properties": {
"popupContent": "Coors Field"
},
"geometry": {
"type": "Point",
"coordinates": [-104.99404191970824, 39.756213909328125]
}
};
var lightRailStop = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"popupContent": "18th & California Light Rail Stop"
},
"geometry": {
"type": "Point",
"coordinates": [-104.98999178409576, 39.74683938093904]
}
},{
"type": "Feature",
"properties": {
"popupContent": "20th & Welton Light Rail Stop"
},
"geometry": {
"type": "Point",
"coordinates": [-104.98689115047453, 39.747924136466565]
}
}
]
};
</script>
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([39.74739, -105], 13);
L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'examples.map-20v6611k'
}).addTo(map);
function onEachFeature(feature, layer) {
var popupContent = "<p>I started out as a GeoJSON " +
feature.geometry.type + ", but now I'm a Leaflet vector!</p>";
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
var baseballIcon = L.icon({
iconUrl: 'baseball-marker.png',
iconSize: [32, 37],
iconAnchor: [16, 37],
popupAnchor: [0, -28]
});
var coorsLayer = L.geoJson(coorsField, {
pointToLayer: function (feature, latlng) {
return L.marker(latlng, {icon: baseballIcon});
},
onEachFeature: onEachFeature
}).addTo(map);
L.geoJson(lightRailStop, {
style: function (feature) {
return feature.properties && feature.properties.style;
},
onEachFeature: onEachFeature,
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, {
radius: 8,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
}
}).addTo(map);
</script>
</body>
</html>
{
"type": "Feature",
"properties": {
"id": 80770977,
"address": {
"houseNumber": "65",
"postcode": "10967",
"quarter": "Neukölln (Neukölln)",
"street": "Kottbusser Damm"
},
"title": "Ruhige Oase mit Sonnenbalkon mitten im Neuköllner Trubel",
"base_rent": 399,
"total_rent": 546,
"room_size": 21,
"total_size": 60,
"floor": 3,
"rooms": 1,
"second_toilet": false,
"balcony": true,
"score": 99,
"images": {
"img1": "http://pictureis24-a.akamaihd.net/pic/orig01/N/358/623/64/358623064-0.jpg/ORIG/resize/210x210%3E/format/jpg?968961600",
"img2": "http://pictureis24-a.akamaihd.net/pic/orig02/N/358/623/65/358623065-0.jpg/ORIG/resize/210x210%3E/format/jpg?3078975257",
"img3": "http://pictureis24-a.akamaihd.net/pic/orig03/N/358/623/62/358623062-0.jpg/ORIG/resize/210x210%3E/format/jpg?1196573298",
"img4": "http://pictureis24-a.akamaihd.net/pic/orig02/N/358/623/61/358623061-0.jpg/ORIG/resize/210x210%3E/format/jpg?2017514715",
},
},
"geometry": {
"type": "Point",
"coordinates": [52.48878633569851, 13.425720118967448]
}
};
{
"type": "Feature",
"properties": {
"address": <address>,
"rent": <rent>,
"total_rent": <total rent>,
"size": <size>,
"floor": <floor>,
"rooms": <rooms>,
"second_toilet": <True|False>,
"balcony": <True|False>,
"landlord_info": <>,
"is24_link": <>,
images: [
"img1": <img1url>,
"img2": <img2url>,
"img3": <img3url>,
"img4": <img4url>,
]
},
"geometry": {
"type": "Point",
"coordinates": [<latitude>, <longitude>]
}
};
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script>
var flatFull = {
"type": "Feature",
"properties": {
"id": 80770977,
"address": {
"houseNumber": "65",
"postcode": "10967",
"quarter": "Neukölln (Neukölln)",
"street": "Kottbusser Damm"
},
"title": "Ruhige Oase mit Sonnenbalkon mitten im Neuköllner Trubel",
"base_rent": 399,
"total_rent": 546,
"room_size": 21,
"total_size": 60,
"floor": 3,
"rooms": 1,
"second_toilet": false,
"balcony": true,
"score": 99,
"images": {
"img1": "http://pictureis24-a.akamaihd.net/pic/orig01/N/358/623/64/358623064-0.jpg/ORIG/resize/210x210%3E/format/jpg?968961600",
"img2": "http://pictureis24-a.akamaihd.net/pic/orig02/N/358/623/65/358623065-0.jpg/ORIG/resize/210x210%3E/format/jpg?3078975257",
"img3": "http://pictureis24-a.akamaihd.net/pic/orig03/N/358/623/62/358623062-0.jpg/ORIG/resize/210x210%3E/format/jpg?1196573298",
"img4": "http://pictureis24-a.akamaihd.net/pic/orig02/N/358/623/61/358623061-0.jpg/ORIG/resize/210x210%3E/format/jpg?2017514715",
},
},
"geometry": {
"type": "Point",
"coordinates": [13.425720118967448, 52.48878633569851]
}
};
var flat = {
"type": "Feature",
"properties": {
"popupContent": "Coors Field"
},
"geometry": {
"type": "Point",
"coordinates": [13.425720118967448, 52.48878633569851]
}
};
</script>
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([52.52,13.384], 12); //Grundkartenelement erzeugen
// colored map
L.tileLayer('http://a.tiles.mapbox.com/v3/examples.map-i87786ca/{z}/{x}/{y}.png').addTo(map);
// grayscale map
// L.tileLayer('http://a.tiles.mapbox.com/v3/examples.map-20v6611k/{z}/{x}/{y}.png').addTo(map);
//var renate = L.marker([52.49744, 13.46531]).addTo(map);
// renate.bindPopup("<b>Zur wilde Renate</b><br><a href='http://www.cluelist.com/de-de/berlin-salon_zur_wilden_renate'>Go to article about Zur Wilden Renate</a>.").openPopup();
// standalone popup
//var popup = L.popup()
//.setLatLng([52.49744, 13.46531])
//.setContent("Zur wilde Renate")
//.openOn(map);
function onEachFeature(feature, layer) {
var popupContent = "<p>I started out as a GeoJSON " +
feature.geometry.type + ", but now I'm a Leaflet vector!</p>";
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
var flatIcon = L.icon({
iconUrl: 'baseball-marker.png',
iconSize: [32, 37],
iconAnchor: [16, 37],
popupAnchor: [0, -28]
});
var flatLayer = L.geoJson(flatFull, {
pointToLayer: function (feature, latlng) {
return L.marker(latlng, {icon: flatIcon});
},
onEachFeature: onEachFeature
}).addTo(map);
</script>
</body>
</html>
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script src="freeBus.json" type="text/javascript"></script>
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([39.74739, -105], 13);
L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'examples.map-20v6611k'
}).addTo(map);
function onEachFeature(feature, layer) {
var popupContent = "<p>I started out as a GeoJSON " +
feature.geometry.type + ", but now I'm a Leaflet vector!</p>";
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
L.geoJson(freeBus, {
filter: function (feature, layer) {
if (feature.properties) {
// If the property "underConstruction" exists and is true, return false (don't render features under construction)
return feature.properties.underConstruction !== undefined ? !feature.properties.underConstruction : true;
}
return false;
},
onEachFeature: onEachFeature
}).addTo(map);
</script>
</body>
</html>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<html>
<head>
<title>Find your party haus in Berlin!</title>
<meta charset="utf-8" />
<!-- CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body{
height: 100%;
}
</style>
<!-- JS -->
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<!-- div-Element für die Karte einrichten -->
<div id="map" style="width: 100%; height: 100%"></div>
<script>
var map = L.map('map').setView([52.52,13.384], 12); //Grundkartenelement erzeugen
// colored map
L.tileLayer('http://a.tiles.mapbox.com/v3/examples.map-i87786ca/{z}/{x}/{y}.png').addTo(map);
// grayscale map
// L.tileLayer('http://a.tiles.mapbox.com/v3/examples.map-20v6611k/{z}/{x}/{y}.png').addTo(map);
var renate = L.marker([52.49744, 13.46531]).addTo(map);
renate.bindPopup("<b>Zur wilde Renate</b><br><a href='http://www.cluelist.com/de-de/berlin-salon_zur_wilden_renate'>Go to article about Zur Wilden Renate</a>.").openPopup();
// standalone popup
//var popup = L.popup()
//.setLatLng([52.49744, 13.46531])
//.setContent("Zur wilde Renate")
//.openOn(map);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment