Created
August 29, 2013 11:41
-
-
Save alperdincer/6377014 to your computer and use it in GitHub Desktop.
Geo API test code for vector features.
This file contains hidden or 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>Geo API Performance Test</title> | |
<style type="text/css"> | |
html { height: 100% } | |
body { height: 100%; margin: 5px; } | |
#mapDiv { width: 800px; height: 500px; } | |
</style> | |
<link rel="stylesheet" href="libs/olv2/theme/default/style.css" type="text/css"> | |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> | |
<script src="libs/olv2/OpenLayers.js" type="text/javascript"></script> | |
<script type="text/javascript"> | |
var iterations = 30; | |
var removeGeom = false; | |
var map, polygon, vectorLayer; | |
//var fileListGeoJSON = ['geojson_40k.js', 'geojson_10k.js', 'geojson_5k.js', 'geojson_2k.js', 'geojson_1k.js', 'geojson_500.js']; | |
var fileListGeoJSON = ['geojson_40k.js']; | |
function initMap() { | |
var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", | |
"http://vmap0.tiles.osgeo.org/wms/vmap0", | |
{layers: 'basic'} ); | |
var centerTr = new OpenLayers.LonLat(32.8252, 39.9078); | |
map = new OpenLayers.Map({ | |
div: document.getElementById("mapDiv"), | |
numZoomLevels: 13, | |
controls: [ | |
new OpenLayers.Control.Navigation({ | |
dragPanOptions: { | |
enableKinetic: true | |
} | |
}), | |
new OpenLayers.Control.Zoom() | |
], | |
layers: [layer], | |
center: centerTr, | |
zoom: 6 | |
}); | |
var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; | |
renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; | |
var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); | |
layer_style.fillOpacity = 0.2; | |
layer_style.graphicOpacity = 1; | |
vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", { | |
style: layer_style, | |
renderers: renderer | |
}); | |
map.addLayer(vectorLayer); | |
} | |
function drawGeom(path) { | |
if(vectorLayer.features.length > 0) | |
removeGeometry(); | |
var linearRing = new OpenLayers.Geometry.LinearRing(path); | |
var polygonFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing])); | |
vectorLayer.addFeatures([polygonFeature]); | |
} | |
function drawGeometryGeoJSON(geom) { | |
if (geom.type == "Polygon") { | |
var pointCount = geom.coordinates[0].length; | |
var areaPath = []; | |
for (var i=0; i < pointCount; i++) { | |
var tempLatLng = new OpenLayers.Geometry.Point(geom.coordinates[0][i][0], geom.coordinates[0][i][1]); | |
areaPath.push(tempLatLng); | |
} | |
drawGeom(areaPath); | |
} | |
} | |
function removeGeometry() { | |
vectorLayer.removeAllFeatures(); | |
} | |
function startTests(type) { | |
var fileList = fileListGeoJSON; | |
if (type == 1) | |
fileList = fileListWKT; | |
for (var i=0; i < fileList.length; i++) { | |
$.getJSON("_data/" + fileList[i], function(data) { | |
console.log("File Name : " + this.url); | |
var totalTime = 0; | |
for (var j=0; j < iterations; j++){ | |
var start = +new Date(); | |
if (type == 0) | |
drawGeometryGeoJSON(data.features[0].geometry); | |
var end = +new Date(); | |
var diff = end - start; | |
totalTime = totalTime + diff; | |
if(removeGeom) | |
removeGeometry(); | |
} | |
console.log(this.url + " file, Average time difference : " + (totalTime / iterations)); | |
}); | |
} | |
} | |
</script> | |
</head> | |
<body onload="initMap();"> | |
<b>Performance Tests - Openlayers v2.13.1</b><br> | |
<a href="javascript:startTests(0);">Start GeoJSON Tests</a><br> | |
<div id="mapDiv"></div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment