| 
<?phprequire_once("db.php");
 $companies = $conn->getCompaniesList();
 $streets = $conn->getStreetsList();
 $areas = $conn->getAreasList();
 ?>
 <!DOCTYPE html>
 <html>
 <head>
 <title>Leaflet basic example</title>
 <script src="js/jquery.min.js"></script>
 <link rel="stylesheet" href="css/leaflet.css" />
 <script src="js/leaflet.js"></script>
 </head>
 <body>
 <input type="text" name="search" id="search" /> <input type="button" id="searchBtn" value="Search" />
 
 <div id="map" style="width: 600px; height: 400px"></div>
 <div id="searchresult"></div>
 
 <script>
 
 var map = L.map('map').setView([51.505, -0.09], 13);
 
 L.tileLayer( 'https://api.mapbox.com/styles/v1/mapbox/streets-v10/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWVnYTYzODIiLCJhIjoiY2ozbXpsZHgxMDAzNjJxbndweDQ4am5mZyJ9.uHEjtQhnIuva7f6pAfrdTw', {
 maxZoom: 18,
 attribution: 'Map data © <a href="http://openstreetmap.org/"> OpenStreetMap </a> contributors, ' +
 '<a href="http://creativecommons.org/"> CC-BY-SA </a>, ' +
 'Imagery ? <a href="http://mapbox.com">Mapbox</a>',
 id: 'examples.map-i875mjb7'
 }).addTo(map);
 
 $( document ).ready(function() {
 $('#searchBtn').click(function() {
 $.ajax({
 type: "GET",
 url: "ajax.php?keyword="+$("#search").val()
 }).done(function( data )
 {
 var jsonData = JSON.parse(data);
 var jsonLength = jsonData.results.length;
 var html = "<ul>";
 for (var i = 0; i < jsonLength; i++) {
 var result = jsonData.results[i];
 html += '<li data-lat="' + result.latitude + '" data-lng="' + result.longitude + '" class="searchResultElement">' + result.name + '</li>';
 }
 html += '</ul>';
 $('#searchresult').html(html);
 $( 'li.searchResultElement' ).click( function() {
 var lat = $(this).attr( "data-lat" );
 var lng = $(this).attr( "data-lng" );
 map.panTo( [lat,lng] );
 });
 });
 });
 addCompanies();
 addStreets();
 addAreas();
 });
 
 function addCompanies() {
 for(var i=0; i<companies.length; i++) {
 var marker = L.marker( [companies[i]['latitude'], companies[i]['longitude']]).addTo(map);
 marker.bindPopup( "<b>" + companies[i]['company']+"</b><br>Details:" + companies[i]['details'] + "<br />Telephone: " + companies[i]['telephone']);
 }
 }
 
 function stringToGeoPoints( geo ) {
 var linesPin = geo.split(",");
 
 var linesLat = new Array();
 var linesLng = new Array();
 
 for(i=0; i < linesPin.length; i++) {
 if(i % 2) {
 linesLat.push(linesPin[i]);
 }else{
 linesLng.push(linesPin[i]);
 }
 }
 
 var latLngLine = new Array();
 
 for(i=0; i<linesLng.length;i++) {
 latLngLine.push( L.latLng( linesLat[i], linesLng[i]));
 }
 
 return latLngLine;
 }
 
 function addAreas() {
 for(var i=0; i < areas.length; i++) {
 console.log(areas[i]['geolocations']);
 var polygon = L.polygon( stringToGeoPoints(areas[i]['geolocations']), { color: 'blue'}).addTo(map);
 polygon.bindPopup( "<b>" + areas[i]['name']);
 }
 }
 
 function addStreets() {
 for(var i=0; i < streets.length; i++) {
 var polyline = L.polyline( stringToGeoPoints(streets[i]['geolocations']), { color: 'red'}).addTo(map);
 polyline.bindPopup( "<b>" + streets[i]['name']);
 }
 }
 
 var companies = JSON.parse( '<?php echo json_encode($companies) ?>' );
 var streets = JSON.parse( '<?php echo json_encode($streets) ?>' );
 var areas = JSON.parse( '<?php echo json_encode($areas) ?>' );
 </script>
 </body>
 </html>
 |