From e301cc2ab05890ec73f5877cd77a0ecf169d73e1 Mon Sep 17 00:00:00 2001 From: crschmidt Date: Sat, 6 Sep 2008 16:09:13 +0000 Subject: [PATCH] Measure includes a great circle distance, to emonstrate the ability to use the geometry attached to the event to generate your own length measurement. git-svn-id: http://svn.openlayers.org/trunk/openlayers@7970 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- examples/measure.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/examples/measure.html b/examples/measure.html index 94bc4000e1..8928444647 100644 --- a/examples/measure.html +++ b/examples/measure.html @@ -92,6 +92,19 @@ document.getElementById('noneToggle').checked = true; } + + function calcVincenty(geometry) { + var dist = 0; + for (var i = 1; i < geometry.components.length; i++) { + var first = geometry.components[i-1]; + var second = geometry.components[i]; + dist += OpenLayers.Util.distVincenty( + new OpenLayers.LonLat(first.x, first.y), + new OpenLayers.LonLat(second.x, second.y) + ); + } + return dist; + } function handleMeasurements(event) { var geometry = event.geometry; @@ -102,6 +115,10 @@ var out = ""; if(order == 1) { out += "measure: " + measure.toFixed(3) + " " + units; + if (map.getProjection() == "EPSG:4326") { + out += "
Great Circle Distance: " + + calcVincenty(geometry).toFixed(3) + " km"; + } } else { out += "measure: " + measure.toFixed(3) + " " + units + "2"; }