contatowellington

Untitled

Oct 2nd, 2021 (edited)
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>Leaflet Address Lookup and Coordinates</title>
  4. <meta charset="utf-8">
  5. <link href="css/bootstrap.css" rel="stylesheet" type="text/css">
  6.  
  7. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  8.  
  9.  
  10. <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" />
  11. <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
  12. <style type="text/css">
  13. html, body { width:100%;padding:0;margin:0; }
  14. .container { width:95%;max-width:980px;padding:1% 2%;margin:0 auto }
  15. #lat, #lon { text-align:right }
  16. #map { width:100%;height:50%;padding:0;margin:0; }
  17. .address { cursor:pointer }
  18. .address:hover { color:#AA0000;text-decoration:underline }
  19. </style>
  20. </head>
  21. <body>
  22. <div class="container">
  23. <p><a class="navbar-brand bila success" href="index.php"><img src="images/logo/gatourbano.png" alt="" height="50" /></a></p>
  24.  
  25.  
  26. <b>Address Lookup</b>
  27. <div id="search">
  28. <form method="get">
  29. <input type="text" name="addr" value="" id="addr" size="58" />
  30. <button type="button" onClick="addr_search();">Search</button>
  31. </form>
  32. <div id="results"></div>
  33. <form>
  34. <input type="text" name="lat" id="lat" size=12 value="">
  35. <input type="text" name="lon" id="lon" size=12 value=""> <input type="text" name="lon" id="endereco" value="">
  36. </form>
  37. </div>
  38.  
  39. <br />
  40.  
  41. <div id="map"></div>
  42.  
  43. </div>
  44.  
  45. <script type="text/javascript">
  46.  
  47. // New York
  48. var startlat = 40.75637123;
  49. var startlon = -73.98545321;
  50.  
  51. var options = {
  52. center: [startlat, startlon],
  53. zoom: 9
  54. }
  55.  
  56. document.getElementById('lat').value = startlat;
  57. document.getElementById('lon').value = startlon;
  58.  
  59. var map = L.map('map', options);
  60. var nzoom = 12;
  61.  
  62. L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {attribution: 'OSM'}).addTo(map);
  63.  
  64. var myMarker = L.marker([startlat, startlon], {title: "Coordinates", alt: "Coordinates", draggable: true}).addTo(map).on('dragend', function() {
  65. var lat = myMarker.getLatLng().lat.toFixed(8);
  66. var lon = myMarker.getLatLng().lng.toFixed(8);
  67. var czoom = map.getZoom();
  68. if(czoom < 18) { nzoom = czoom + 2; }
  69. if(nzoom > 18) { nzoom = 18; }
  70. if(czoom != 18) { map.setView([lat,lon], nzoom); } else { map.setView([lat,lon]); }
  71. document.getElementById('lat').value = lat;
  72. document.getElementById('lon').value = lon;
  73. myMarker.bindPopup("Lat " + lat + "<br />Lon " + lon).openPopup();
  74. });
  75.  
  76. function chooseAddr(lat1, lng1)
  77. {
  78. myMarker.closePopup();
  79. map.setView([lat1, lng1],18);
  80. myMarker.setLatLng([lat1, lng1]);
  81. lat = lat1.toFixed(8);
  82. lon = lng1.toFixed(8);
  83. document.getElementById('lat').value = lat;
  84. document.getElementById('lon').value = lon;
  85. myMarker.bindPopup("Lat " + lat + "<br />Lon " + lon).openPopup();
  86. }
  87.  
  88. function myFunction(arr)
  89. {
  90. var out = "<br />";
  91. var i;
  92.  
  93. if(arr.length > 0)
  94. {
  95. for(i = 0; i < arr.length; i++)
  96. {
  97. out += "<br><div class='address' title='Show Location and Coordinates' onclick='chooseAddr(" + arr[i].lat + ", " + arr[i].lon + ");return false;'>" + arr[i].display_name + "</div>";
  98. }
  99. document.getElementById('results').innerHTML = out;
  100. }
  101. else
  102. {
  103. document.getElementById('results').innerHTML = "Sorry, no results...";
  104. }
  105.  
  106. }
  107.  
  108. function addr_search()
  109. {
  110. var inp = document.getElementById("addr");
  111. var xmlhttp = new XMLHttpRequest();
  112. var url = "https://nominatim.openstreetmap.org/search?format=json&limit=3&q=" + inp.value;
  113. xmlhttp.onreadystatechange = function()
  114. {
  115. if (this.readyState == 4 && this.status == 200)
  116. {
  117. var myArr = JSON.parse(this.responseText);
  118. myFunction(myArr);
  119. }
  120. };
  121. xmlhttp.open("GET", url, true);
  122. xmlhttp.send();
  123. }
  124.  
  125. </script>
  126.  
  127.  
  128.  
  129.  
  130.  
  131. <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  132.  
  133. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
  134.  
  135. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
  136.  
  137. </body>
  138. </html>
Add Comment
Please, Sign In to add comment