Advertisement
Guest User

Untitled

a guest
Feb 27th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.75 KB | None | 0 0
  1. tr:nth-child(even) {background: #CCC}
  2. tr:nth-child(odd) {background: #FFF}
  3.  
  4.  
  5. <!DOCTYPE html>
  6. <html>
  7. <head>
  8.  
  9. <style>
  10. html,
  11. body,
  12. #map_canvas {
  13. margin: 0;
  14. padding: 0;
  15. height: 100%;
  16. }
  17. table,
  18. tr,
  19. td {
  20. height: 100%;
  21. }
  22. .text {
  23. width: 300px;
  24. height: 600px;
  25. background-color: white;
  26. overflow:scroll;
  27. overflow-y: auto;
  28. overflow-x: hidden;
  29.  
  30. }
  31.  
  32. #side_bar {
  33. z-index: 100;
  34. position: absolute;
  35. top: 135px;
  36. left: 1050px;
  37. }
  38. #panel {
  39. z-index: -100;
  40. display: block;
  41. position: absolute;
  42. top: 135px;
  43. left: 1050px;
  44. }
  45. #mdiv {
  46. z-index: 500;
  47. width: 25px;
  48. height: 25px;
  49. display: none;
  50. background-color: red;
  51. border: 1px solid black;
  52. position: absolute;
  53. left: 1300px;
  54. top: 112px;
  55. }
  56. .mdiv {
  57. height: 25px;
  58. width: 2px;
  59. margin-left: 12px;
  60. background-color: black;
  61. transform: rotate(45deg);
  62. -ms-transform: rotate(45deg);
  63. /* IE 9 */
  64. -webkit-transform: rotate(45deg);
  65. /* Safari and Chrome */
  66. z-index: 1;
  67. }
  68. .md {
  69. height: 25px;
  70. width: 2px;
  71. background-color: black;
  72. transform: rotate(90deg);
  73. -ms-transform: rotate(90deg);
  74. /* IE 9 */
  75. -webkit-transform: rotate(90deg);
  76. /* Safari and Chrome */
  77. z-index: 2;
  78. }
  79.  
  80. tr:nth-child(even) {background: #CCC}
  81. tr:nth-child(odd) {background: #FFF}
  82.  
  83. </style>
  84. </head>
  85. <link rel="stylesheet" type="text/css" href="assets/css/storelocator.css" />
  86.  
  87. <body>
  88.  
  89. <div class="bh-sl-container">
  90. <div id="page-header">
  91. <h1 class="bh-sl-title">The Auditor Locator</h1>
  92.  
  93. </div>
  94.  
  95. <div class="bh-sl-form-container">
  96. <form id="bh-sl-user-location" method="post" action="#">
  97. <div class="form-input">
  98. <label for="bh-sl-address">Enter Address or Zip Code:</label>
  99. <input id= "address" type="text" value="Palo Alto, CA"></input>
  100. <input type= "button" value="Submit" onclick="codeAddress();"></input>
  101.  
  102. </div>
  103.  
  104.  
  105. </form>
  106. </div>
  107.  
  108.  
  109.  
  110.  
  111. <script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
  112. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  113. <table border="0">
  114. <tr>
  115. <td>
  116. <div id="map" style="height: 600px; width:1000px;"></div>
  117. </td>
  118. <td>
  119. <div id="side_bar" class='text'></div>
  120. <div id="panel" class='text'></div>
  121. </td>
  122. </tr>
  123. </table>
  124.  
  125.  
  126. <div id="info"></div>
  127. <div id="mdiv">
  128. <div class="mdiv">
  129. <div class="md">
  130. </div>
  131. </div>
  132. </div>
  133. <script type="text/javascript">
  134. var locations = [
  135. <?php
  136. $servername = "mysql7.000webhost.com";
  137. $username = "a8814009_locator";
  138. $password = "vincer64";
  139. $dbname = "a8814009_auditor";
  140.  
  141. // Create connection
  142. $conn = new mysqli($servername, $username, $password, $dbname);
  143. // Check connection
  144. if ($conn->connect_error) {
  145. die("Connection failed: " . $conn->connect_error);
  146. }
  147.  
  148. $sql = "SELECT id, name, address, lat, lng, Icon FROM markers";
  149. $result = $conn->query($sql);
  150.  
  151. if ($result->num_rows > 0) {
  152. // output data of each row
  153. while($row = $result->fetch_assoc()) {
  154. echo '["' . $row["name"]. '"'. ', '. '"' . $row["address"].'"'.', '. '"'. $row["lat"].','. $row["lng"].'"'.', '. '"'. $row["Icon"]. '"]'. ',';
  155. }
  156. } else {
  157. echo "0 results";
  158. }
  159.  
  160. $conn->close();
  161. ?>
  162.  
  163. ];
  164. // alert(locations.length);
  165.  
  166. var geocoder = null;
  167. var map = null;
  168. var customerMarker = null;
  169. var gmarkers = [];
  170. var closest = [];
  171. var directionsDisplay = new google.maps.DirectionsRenderer();;
  172. var directionsService = new google.maps.DirectionsService();
  173. var map;
  174.  
  175. function initialize() {
  176. // alert("init");
  177. geocoder = new google.maps.Geocoder();
  178. map = new google.maps.Map(document.getElementById('map'), {
  179. zoom: 9,
  180. center: new google.maps.LatLng(52.6699927, -0.7274620),
  181. mapTypeId: google.maps.MapTypeId.ROADMAP
  182. });
  183. var infowindow = new google.maps.InfoWindow();
  184. var marker, i;
  185. var bounds = new google.maps.LatLngBounds();
  186. document.getElementById('info').innerHTML = "found " + locations.length + " locations<br>";
  187. for (i = 0; i < locations.length; i++) {
  188. var coordStr = locations[i][2];
  189. var coords = coordStr.split(",");
  190. var pt = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1]));
  191. bounds.extend(pt);
  192. marker = new google.maps.Marker({
  193. position: pt,
  194. map: map,
  195. icon: locations[i][3],
  196. address: locations[i][1],
  197. title: locations[i][0],
  198. html: locations[i][0] + "<br>" + locations[i][1] + "<br><br><a href='javascript:getDirections(customerMarker.getPosition(),"" + locations[i][1] + "");'>Get Directions</a>"
  199. });
  200. gmarkers.push(marker);
  201. google.maps.event.addListener(marker, 'click', (function(marker, i) {
  202. return function() {
  203. infowindow.setContent(marker.html);
  204. infowindow.open(map, marker);
  205. }
  206. })
  207. (marker, i));
  208. }
  209. map.fitBounds(bounds);
  210.  
  211. $("#mdiv").click(function() {
  212. $("#side_bar").css({
  213. "z-index": 100,
  214. "top": "135px"
  215. });
  216. $("#panel").css("z-index", -100);
  217. $("#mdiv").css("display", "none");
  218. })
  219.  
  220. }
  221.  
  222. function codeAddress() {
  223. var address = document.getElementById('address').value;
  224. geocoder.geocode({
  225. 'address': address
  226. }, function(results, status) {
  227. if (status == google.maps.GeocoderStatus.OK) {
  228. map.setCenter(results[0].geometry.location);
  229. if (customerMarker) customerMarker.setMap(null);
  230. customerMarker = new google.maps.Marker({
  231. map: map,
  232. position: results[0].geometry.location
  233. });
  234. closest = findClosestN(results[0].geometry.location, 12);
  235. // get driving distance
  236. closest = closest.splice(0, 12);
  237. calculateDistances(results[0].geometry.location, closest, 12);
  238. } else {
  239. alert('Geocode was not successful for the following reason: ' + status);
  240. }
  241. });
  242. }
  243.  
  244. function findClosestN(pt, numberOfResults) {
  245. var closest = [];
  246. document.getElementById('info').innerHTML += "processing " + gmarkers.length + "<br>";
  247. for (var i = 0; i < gmarkers.length; i++) {
  248. gmarkers[i].distance = google.maps.geometry.spherical.computeDistanceBetween(pt, gmarkers[i].getPosition());
  249. document.getElementById('info').innerHTML += "process " + i + ":" + gmarkers[i].getPosition().toUrlValue(6) + ":" + gmarkers[i].distance.toFixed(2) + "<br>";
  250. gmarkers[i].setMap(null);
  251. closest.push(gmarkers[i]);
  252. closest.sort(sortByDist);
  253. }
  254.  
  255. return closest;
  256. }
  257.  
  258. function sortByDist(a, b) {
  259. return (a.distance - b.distance)
  260.  
  261. }
  262.  
  263. function calculateDistances(pt, closest, numberOfResults) {
  264. var service = new google.maps.DistanceMatrixService();
  265. var request = {
  266. origins: [pt],
  267. destinations: [],
  268. travelMode: google.maps.TravelMode.DRIVING,
  269. unitSystem: google.maps.UnitSystem.IMPERIAL,
  270. avoidHighways: false,
  271. avoidTolls: false
  272. };
  273. for (var i = 0; i < closest.length; i++) {
  274. request.destinations.push(closest[i].getPosition());
  275. }
  276. service.getDistanceMatrix(request, function(response, status) {
  277. if (status != google.maps.DistanceMatrixStatus.OK) {
  278. alert('Error was: ' + status);
  279. } else {
  280. var origins = response.originAddresses;
  281. var destinations = response.destinationAddresses;
  282. var outputDiv = document.getElementById('side_bar');
  283. outputDiv.innerHTML = '';
  284.  
  285. var results = response.rows[0].elements;
  286. // save title and address in record for sorting
  287. for (var i = 0; i < closest.length; i++) {
  288. results[i].title = closest[i].title;
  289. results[i].address = closest[i].address;
  290. results[i].idx_closestMark = i;
  291. }
  292. results.sort(sortByDistDM);
  293. for (var i = 0;
  294. ((i < numberOfResults) && (i < closest.length)); i++) {
  295. closest[i].setMap(map);
  296.  
  297. outputDiv.innerHTML += "<a href='javascript:google.maps.event.trigger(closest[" + results[i].idx_closestMark + "],"click");'>" + results[i].title + '</a><br>' + results[i].address + "<br>" + results[i].distance.text + ' approximately ' + results[i].duration.text + "<br><a href='javascript:getDirections(customerMarker.getPosition(),"" + results[i].address + "");'>Get Directions</a><br><hr>"
  298.  
  299. }
  300. }
  301. });
  302. }
  303.  
  304. function getDirections(origin, destination) {
  305. var request = {
  306. origin: origin,
  307. destination: destination,
  308. travelMode: google.maps.DirectionsTravelMode.DRIVING
  309. };
  310. directionsService.route(request, function(response, status) {
  311. if (status == google.maps.DirectionsStatus.OK) {
  312. directionsDisplay.setMap(map);
  313. directionsDisplay.setDirections(response);
  314. $("#side_bar").css({
  315. "z-index": -100,
  316. "top": "135px"
  317. });
  318. $("#panel").css("z-index", 100);
  319. $("#mdiv").css("display", "block");
  320.  
  321. directionsDisplay.setPanel(document.getElementById('panel'));
  322.  
  323.  
  324. }
  325. });
  326. }
  327.  
  328. function sortByDistDM(a, b) {
  329. return (a.distance.value - b.distance.value)
  330. }
  331.  
  332. google.maps.event.addDomListener(window, 'load', initialize);
  333. </script>
  334. </body>
  335. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement