Created
June 16, 2015 15:47
-
-
Save ThomasG77/badfca2694a7255fa2fa to your computer and use it in GitHub Desktop.
Sample to display GeoJSON as cluster in Openlayers 3. derived from http://openlayers.org/en/v3.6.0/examples/cluster.html?mode=advanced
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>Clustering example</title> | |
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> | |
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> | |
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.6.0/ol.css" type="text/css"> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.6.0/ol.js"></script> | |
</head> | |
<body> | |
<div class="container-fluid"> | |
<div class="row-fluid"> | |
<div class="span12"> | |
<div id="map" class="map"></div> | |
</div> | |
</div> | |
</div> | |
<script> | |
var source = new ol.source.Vector({ | |
url: 'sample.geojson', | |
format: new ol.format.GeoJSON() | |
}); | |
var clusterSource = new ol.source.Cluster({ | |
distance: 40, | |
source: source | |
}); | |
var styleCache = {}; | |
var clusters = new ol.layer.Vector({ | |
source: clusterSource, | |
style: function(feature, resolution) { | |
var size = feature.get('features').length; | |
var style = styleCache[size]; | |
if (!style) { | |
style = [new ol.style.Style({ | |
image: new ol.style.Circle({ | |
radius: 10, | |
stroke: new ol.style.Stroke({ | |
color: '#fff' | |
}), | |
fill: new ol.style.Fill({ | |
color: '#3399CC' | |
}) | |
}), | |
text: new ol.style.Text({ | |
text: size.toString(), | |
fill: new ol.style.Fill({ | |
color: '#fff' | |
}) | |
}) | |
})]; | |
styleCache[size] = style; | |
} | |
return style; | |
} | |
}); | |
var raster = new ol.layer.Tile({ | |
source: new ol.source.MapQuest({layer: 'sat'}) | |
}); | |
var raw = new ol.layer.Vector({ | |
source: source | |
}); | |
var map = new ol.Map({ | |
layers: [raster, clusters], | |
renderer: 'canvas', | |
target: 'map', | |
view: new ol.View({ | |
center: [0, 0], | |
zoom: 2 | |
}) | |
}); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment