8/1/15

So sánh địa điểm gần nhau trên bản đồ



So sánh địa điểm gần nhau trên bản đồ, So sánh địa điểm gần nhau trên bản đồ So sánh địa điểm gần nhau trên bản đồ, So sánh địa điểm gần nhau trên bản đồ So sánh địa điểm gần nhau trên bản đồ, So sánh địa điểm gần nhau trên bản đồ.


 if (isset($_GET["q"])) $Address = urlencode($_GET["q"]);
  //$Address = urlencode($Address);http://maps.google.com/maps?&q=54+Nguyen+Trai%2C+Quan+1%2C+ho+chi+minh%2C+JP01%2C+7000%2C+JP&z=16
  $request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$Address."&sensor=true";
  $xml = simplexml_load_file($request_url) or die("url not loading");
  $status = $xml->status;
  if ($status=="OK") {
      $Lat = $xml->result->geometry->location->lat;
      $Lon = $xml->result->geometry->location->lng;
      $LatLng = "$Lat,$Lon";
  }

  //echo $LatLng;
include_once('wp-config.php');
$username = DB_USER;
$password = DB_PASSWORD;
$hostname = DB_HOST; 

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
$selected = mysql_select_db(DB_NAME,$dbhandle) 
  or die("Could not select examples");
mysql_query("DELETE FROM wp_latlng") or die(mysql_error());

$loc_result = mysql_query("SELECT post_id,post_title,meta_value FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.ID=wp_postmeta.post_id WHERE wp_postmeta.meta_key='_kad_project_location'");
//mysql_query("CREATE TEMPORARY TABLE IF NOT EXISTS table1 (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` text NOT NULL,`lat` double(10,7) NOT NULL,`lng` double(10,7) NOT NULL) ENGINE MyISAM");
while ($loc_row = mysql_fetch_array($loc_result)) {
//echo $loc_row{'meta_value'};
 $loc_request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$loc_row{'meta_value'}."&sensor=true";
 $loc_xml = simplexml_load_file($loc_request_url) or die("url not loading");
 $loc_status = $loc_xml->status;
 $name = $loc_row{'post_title'};
 $postID = $loc_row{'post_id'};
 if ($loc_status=="OK") {
 $lLat = $loc_xml->result->geometry->location->lat;
 $lLon = $loc_xml->result->geometry->location->lng;
 //$loc_LatLng = "$lLat,$lLon";
 }
 //echo $loc_LatLng;
mysql_query("INSERT INTO wp_latlng (`postID`,`name`,`lat`,`lng` ) VALUES ('$postID','$name','$lLat','$lLon')") or die(mysql_error());
}

//execute the SQL query and return records

$result = mysql_query("SELECT id, postID, name, lat, lng, ( 3959 * acos( cos( radians($Lat) ) * cos( radians( lat ) ) * 
cos( radians( lng ) - radians($Lon) ) + sin( radians($Lat) ) * 
sin( radians( lat ) ) ) ) AS distance FROM wp_latlng HAVING
distance < 20 ORDER BY distance LIMIT 0 , 20");


//fetch tha data from the database

$location = array();
echo "<div style='float:left;width: 19%;'><div style='background-color:#e2e2e2;text-align:center;padding:5px 0;'>Staffs nearby</div><ol class='rounded-list'>";
while ($row = mysql_fetch_array($result)) {
$km = round($row{'distance'}*1.609344,2);
   echo "<li><a href='wp-admin/post.php?post=".$row{'postID'}."&action=edit'>".$row{'name'}." - ".$km."km</a></li>";
   $location[] = array('name'=>$row{'name'},'lat'=>$row{'lat'},'lng'=>$row{'lng'});
}
echo "</ol></div>";
mysql_close($dbhandle);
?>


Code Đánh dấu nhiều địa điểm trên bản đồ:


<div id="map" style="height: 650px; width:80%;float:right;"></div>

  <script type="text/javascript">
    var locations = [
['Customer',<?php echo $Lat?>, <?php echo $Lon?>,'http://maps.google.com/mapfiles/ms/icons/red-dot.png',1],  
<?php $i=2; foreach($location as $key => $value){
echo "['".$value['name']."',".$value['lat'].",".$value['lng'].",'http://maps.google.com/mapfiles/ms/icons/blue-dot.png',".$i."],";$i++;
}?> 
 
    ];

var stylez = [
{
 featureType: "all",
 elementType: "all",
 stylers: [
{ saturation: -100 } // <-- THIS
 ]
}
];

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 14,
      center: new google.maps.LatLng(<?php echo $Lat?>, <?php echo $Lon?>),
      mapTypeId: google.maps.MapTypeId.ROADMAP,
    });

var mapType = new google.maps.StyledMapType(stylez, { name:"Grayscale" });    
map.mapTypes.set('map', mapType);
map.setMapTypeId('map');

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {
 marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
//icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld='+i+'|ff0000|000000' 
icon: locations[i][3],
 });
      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>

1 nhận xét:

  1. var stylez = [
    {
    featureType: "all",
    elementType: "all",
    stylers: [
    { saturation: -100 } // <-- Cái này tạo bản đồ grayscale
    ]
    }
    ];

    Trả lờiXóa