I have successfully got google elevation service to add elevation to end
of a mouse position string.
Some crude code for this below...
While this works, it effectively queues up a lot of requests while the
mousemoves. More effective would be elevation only when mouse stops
moving but can you detect this in js? I am reluctant to do increase
granularity much.
elevator = new google.maps.ElevationService();
mousePositionControl = new OpenLayers.Control.MousePosition({
formatOutput: function (lonLat) {
var digits = parseInt(this.numDigits);
newHtml = this.prefix + 'Lat/Long:<BR>' +
lonLat.lat.toFixed(digits) + this.separator + lonLat.lon.toFixed(digits)
+ this.suffix;
if (map.displayProjection.proj.units == "m") {
digits = 1;
newHtml = this.prefix + 'East/North:<BR>' +
lonLat.lon.toFixed(digits) + this.separator + lonLat.lat.toFixed(digits)
+ this.suffix;
}
newHtml = scaleOut + '<BR>' + newHtml ;
if (elevator) {
var locations = [];
locations.push( new google.maps.LatLng(lonLat.lat,
lonLat.lon));
var positionalRequest = {'locations': locations };
// Initiate the location request
elevator.getElevationForLocations(positionalRequest,
function(results, status) {
if (status == google.maps.ElevationStatus.OK){
// Retrieve the first result
if (results[0]){
var el =
document.getElementById(mousePositionControl.element.id);
el.innerHTML = newHtml + ' ,' +
results[0].elevation.toFixed(1)+'m' + '<BR>' + measurementOut;
}
}
});
}
return newHtml + '<BR>' + measurementOut;
}
});
--
Phil Scadden, Senior Scientist GNS Science Ltd 764 Cumberland St,
Private Bag 1930, Dunedin, New Zealand Ph +64 3 4799663, fax +64 3 477 5232
Notice: This email and any attachments are confidential. If received in error
please destroy and immediately notify us. Do not copy or disclose the contents.
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users