pathDistance
by Rosi Ramoreez
HTML
<script src="http://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
<div id="info"></div>
<div id="map"></div>
CSS
#map {
width: 640px;
height: 400px;
border: 1px solid black;
}
JavaScript
var path;
var map;
$(window).load(function() {
map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: 20.0094671,
lng: 73.3826942
},
zoom: 12,
streetViewControl: false
});
var polyString = "iibyBody~L|MiOs@eAiAw@YYO]Mk@Ca@IkAHu@r@_C`@s@^c@dA_Ax@sAdB{Az@u@Xs@\Wf@I`BYVIRUvA_CX_@JWBg@Ga@Qe@i@]Wa@@{AFaAIe@KQKKGOCk@Cc@IWQs@@aAB{AH{ANmBPs@Zw@`@}@Di@Cw@Ae@HaAHuBF_@\aALa@b@g@JSBOAIQQ}@u@KUCg@?aANgAp@oBbAmB\gAPm@Dm@FgDK{@Pm@Vu@d@eCFy@T{APQn@[x@i@JYGa@kA}Cy@_Cu@aCIy@@QFMx@y@zAqB\{A`@o@d@g@f@w@HMYJgB`@gA\_CbAo@n@YHQ?i@SOKIMCY@kANs@`@eBb@uAf@{@FQEMKEoADy@BQVOnAIVSJS@a@Gy@OSMi@mAg@e@gB_Aq@i@s@s@}AcBoBmA}Ag@k@YQYK[UYu@Yg@E_@?UEa@Om@K_Ce@oA[{@[oDaBoDuAsAa@Y?MFGNWP[Iu@a@e@c@i@Mi@AYBSRMRE`@KXsA`AU@SGY]SKMHAX@LHR`@~@VLj@PR?TKNEF?DFDPER_@j@ERB`@JhA?l@G`@Kb@ORm@^]FYA]Ok@Qc@MgBOgBM]Ig@[q@_BKw@Ay@EU[Mm@_@U[AYZmAFe@CKIAODWd@Sp@MRMAIMB]HMD_@?{@CIGCQ@[V_A~@MDO?OKe@iAWq@UUk@OOMC]A}Aj@_CNWRQj@UfA?^?HMLs@\gBz@mCv@iCvA_CnA{BcBRgGj@w@Ro@FsBPo@Lk@PPn@";
path = google.maps.geometry.encoding.decodePath(polyString);
var polyline = new google.maps.Polyline({
path: path,
strokeColor: 'purple',
map: map,
strokeWeight: 4
});
var elevator = new google.maps.ElevationService();
elevator.getElevationAlongPath({
path: path,
samples: 512
}, calcdistance);
});
function calcdistance(results, status) {
if (status == google.maps.ElevationStatus.OK) {
var totalDistance2 = 0;
console.log('initial path length:' + path.length);
for (i = 0; i < path.length - 1; i++) {
totalDistance2 = totalDistance2 + google.maps.geometry.spherical.computeDistanceBetween(path[i], path[i + 1]);
}
console.log('distance iterating over path latlngs:' + totalDistance2);
console.log('distance using computelength(path):' + google.maps.geometry.spherical.computeLength(path));
var totalDistance = 0;
var epath = [];
var old_loc = results[0].location;
var new_loc;
console.log("results.length="...