Load features on demand in vector-osm example

This commit is contained in:
Tom Payne
2014-03-04 16:02:50 +01:00
parent 50c4961b9f
commit 10bddeae59
3 changed files with 20 additions and 2229 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -32,11 +32,11 @@
<div class="span4"> <div class="span4">
<h4 id="title">OSM XML example</h4> <h4 id="title">OSM XML example</h4>
<p id="shortdesc">Example of using the OSM XML source.</p> <p id="shortdesc">Example of using the OSM XML source. Vector data is loaded dynamically from a remote server using a tiling strategy.</p>
<div id="docs"> <div id="docs">
<p>See the <a href="vector-osm.js" target="_blank">vector-osm.js source</a> to see how this is done.</p> <p>See the <a href="vector-osm.js" target="_blank">vector-osm.js source</a> to see how this is done.</p>
</div> </div>
<div id="tags">vector, osm, xml</div> <div id="tags">vector, osm, xml, loading, remote</div>
</div> </div>
<div class="span4 offset4"> <div class="span4 offset4">
<div id="info" class="alert alert-success"> <div id="info" class="alert alert-success">

View File

@@ -1,13 +1,17 @@
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.format.OSMXML');
goog.require('ol.layer.Tile'); goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector'); goog.require('ol.layer.Vector');
goog.require('ol.loading');
goog.require('ol.proj');
goog.require('ol.source.BingMaps'); goog.require('ol.source.BingMaps');
goog.require('ol.source.OSMXML'); goog.require('ol.source.RemoteVector');
goog.require('ol.style.Circle'); goog.require('ol.style.Circle');
goog.require('ol.style.Fill'); goog.require('ol.style.Fill');
goog.require('ol.style.Stroke'); goog.require('ol.style.Stroke');
goog.require('ol.style.Style'); goog.require('ol.style.Style');
goog.require('ol.tilegrid.XYZ');
var styles = { var styles = {
'amenity': { 'amenity': {
@@ -83,9 +87,18 @@ var styles = {
} }
}; };
var vectorSource = new ol.source.OSMXML({ var epsg3857ToEPSG4326 = ol.proj.getTransform('EPSG:3857', 'EPSG:4326');
projection: 'EPSG:3857', var vectorSource = new ol.source.RemoteVector({
url: 'data/osm/map.osm' extentUrlFunction: function(extent, resolution) {
var epsg4326Extent = epsg3857ToEPSG4326(extent, []);
return 'http://overpass-api.de/api/xapi?map?bbox=' +
epsg4326Extent.join(',');
},
format: new ol.format.OSMXML(),
loadingFunction: ol.loading.createTile(new ol.tilegrid.XYZ({
maxZoom: 19
})),
projection: 'EPSG:3857'
}); });
var vector = new ol.layer.Vector({ var vector = new ol.layer.Vector({
@@ -117,6 +130,7 @@ var map = new ol.Map({
target: document.getElementById('map'), target: document.getElementById('map'),
view: new ol.View2D({ view: new ol.View2D({
center: [739218, 5906096], center: [739218, 5906096],
maxZoom: 19,
zoom: 17 zoom: 17
}) })
}); });