Advertisement
Guest User

Walks Dynamic jquery mobile page creation

a guest
Apr 17th, 2015
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. $(document).on('pageinit', "#my-routes", function() {
  2.  
  3. db.transaction(function(t){
  4. t.executeSql('SELECT * FROM WALKS', [], querySuccess, errorCB);
  5. });
  6.  
  7. function querySuccess(t, results, Element) {
  8. var len = results.rows.length;
  9. console.log("Walks table: " + len + " rows found");
  10.  
  11. var coords = [];
  12. var polys = [];
  13.  
  14. for (var i=0; i<len; i++){
  15. var polylinePath = [];
  16. walkId = results.rows.item(i).id;
  17. walkTitle = results.rows.item(i).WalkTitle;
  18. walkDescription = results.rows.item(i).WalkDescription;
  19. walkDistance = results.rows.item(i).Distance;
  20. walkDuration = results.rows.item(i).Duration;
  21. path = results.rows.item(i).PathCoordinates;
  22. path=path.substr(1,path.length-1); path=path.substr(0,path.length-1);
  23. polyline = path.split("),(");
  24. var sumLat=0, sumLng=0, maxLat, minLat, maxLng, minLng;
  25. polyline=polyline.map(function(p){
  26. var point=p.split(',');
  27. // var lat=(Math.random()/100) ,lng=(Math.random()/100);
  28. var lat=parseFloat(point[0]) ,lng=parseFloat(point[1]);
  29. if(maxLat===undefined || maxLat<lat) maxLat=lat;
  30. if(maxLng===undefined || maxLng<lng) maxLng=lng;
  31. if(minLat===undefined || minLat>lat) minLat=lat;
  32. if(minLng===undefined || minLng>lng) minLng=lng;
  33. sumLat+=lat; sumLng+=lng;
  34. return new google.maps.LatLng(lat,lng);
  35. });
  36. coords.push([sumLat/polyline.length, sumLng/polyline.length, maxLat, minLat, maxLng, minLng]);
  37. polys.push(polyline);
  38.  
  39. console.log(coords);
  40. console.log(polys);
  41.  
  42. $("#my_walks").append('<a class="walkPage" id="walk_'+walkId+'" href="#Walk_'+walkId+'"><span class="walk_container"><span class="map" id="walkMap' + walkId + '" style="width: 100%; height: 150px;"></span><span class="walk_basic_info"><span class="walk_title">'+ walkTitle + '</span><span class="walk_distance">' + walkDistance + '</span><span class="walk_duration">'+ "|" + walkDuration + '</span></span></a>');
  43.  
  44. var makePage = $('<div data-role="page" id="Walk_'+walkId+'">' +
  45. '<div data-role="header"><a data-rel="back"><i class="fa fa-arrow-left"></i></a>'+
  46. '<h1>'+walkTitle+'</h1></div><div data-role="main" class="ui-content"><div class="finishedRouteInfo"><div class="mapDetails" style="width: 100%; height: 150px;"></div>'+
  47. '<div class="ui-grid-a"><div class="ui-block-a home_btns no_border"><div class="ui-block-a finishedDistance"><i class="fa fa-map-marker"></i></div>'+
  48. '<div class="ui-block-b"><p>Distance <br/><span id="finalDistance" class="value">'+walkDistance+'</span></p></div></div>'+
  49. '<div class="ui-block-b home_btns"><div class="ui-block-a finishedDistance"><i class="fa fa-clock-o"></i></div>'+
  50. '<div class="ui-block-b finishedDuration"><p>Duration <br/><span class="value" id="finalDuration">'+walkDuration+'</span></p></div></div><span class="horizontalSplitter"></span><div class="walkDescription">'+walkDescription+
  51. '</div></div></div><script>$.getScript("js/myRoutesDetail.js");</script></div>');
  52.  
  53. makePage.appendTo($.mobile.pageContainer);
  54. }
  55. $('.map').each(function (index, Element) {
  56.  
  57. // var latlng = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1]));
  58. var myOptions = {
  59. zoom: 14,
  60. center: new google.maps.LatLng(coords[index][0],coords[index][1]),
  61. // center: new google.maps.LatLng(52.9544124,-2.0046446),
  62. mapTypeId: google.maps.MapTypeId.TERRAIN,
  63. disableDefaultUI: false,
  64. mapTypeControl: true,
  65. mapTypeControl: false,
  66. streetViewControl:false,
  67. zoomControl: false,
  68. draggable: false,
  69. zoomControlOptions: {
  70. style: google.maps.ZoomControlStyle.SMALL
  71. }
  72. };
  73.  
  74. var map = new google.maps.Map(Element, myOptions);
  75.  
  76.  
  77. var sw = new google.maps.LatLng(coords[index][3],coords[index][5]);
  78. var ne = new google.maps.LatLng(coords[index][2],coords[index][4]);
  79. map.fitBounds(new google.maps.LatLngBounds(sw,ne));
  80.  
  81. setTimeout(function() {
  82. google.maps.event.trigger(map, "resize");
  83. }, 1000);
  84.  
  85. var path = new google.maps.Polyline({
  86. path: polys[index],
  87. strokeColor: "#FF0000",
  88. strokeOpacity: 1.0,
  89. strokeWeight: 5
  90. });
  91. path.setMap(map);
  92. });
  93.  
  94. $('.mapDetails').each(function (index, Element) {
  95.  
  96. // var latlng = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1]));
  97. var myOptions = {
  98. zoom: 14,
  99. center: new google.maps.LatLng(coords[index][0],coords[index][1]),
  100. // center: new google.maps.LatLng(52.9544124,-2.0046446),
  101. mapTypeId: google.maps.MapTypeId.TERRAIN,
  102. disableDefaultUI: false,
  103. mapTypeControl: true,
  104. mapTypeControl: false,
  105. streetViewControl:false,
  106. zoomControl: false,
  107. draggable: true,
  108. zoomControlOptions: {
  109. style: google.maps.ZoomControlStyle.SMALL
  110. }
  111. };
  112.  
  113. var map = new google.maps.Map(Element, myOptions);
  114.  
  115.  
  116. var sw = new google.maps.LatLng(coords[index][3],coords[index][5]);
  117. var ne = new google.maps.LatLng(coords[index][2],coords[index][4]);
  118. map.fitBounds(new google.maps.LatLngBounds(sw,ne));
  119.  
  120. var path = new google.maps.Polyline({
  121. path: polys[index],
  122. strokeColor: "#FF0000",
  123. strokeOpacity: 1.0,
  124. strokeWeight: 5
  125. });
  126. path.setMap(map);
  127. });
  128.  
  129. }
  130.  
  131. function errorCB(error) {
  132. console.log("Error processing SQL: " + error.message);
  133. }
  134. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement