分類
网站

谷歌地图坐标展示

已知经纬度、精度、(速度和方向),欲将信息展示在地图上,可以用如下代码:

<html>
<head>
<title>Location-Map</title>
<script
src="<?php 
//GET值为a:latitude,n:longitude,r:accuracy,h:heading,s:speed
//判断是否含有速度方向信息,来选择加载geometry库
if(isset($_GET['s'])&&isset($_GET['h'])&&$_GET["s"]!=0){
    echo 'http://maps.googleapis.com/maps/api/js?libraries=geometry&key=yourMapApiKey&sensor=false';
} else {
    echo 'http://maps.googleapis.com/maps/api/js?key=yourMapApiKey&sensor=false';
}?>">
</script>
 
<script>
var myCenter=new google.maps.LatLng(<?php echo $_GET["a"].",".$_GET["n"]; ?>);
function initialize()
{
  var mapProp = {
    center: myCenter,
    zoom:16,
    mapTypeId: google.maps.MapTypeId.<?php echo $_GET["t"]; ?>
  };

  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
  
  var marker=new google.maps.Marker({
  position:myCenter,
  });
  
  var myCity = new google.maps.Circle({
  center:myCenter,
  radius:<?php echo $_GET["r"]; ?>,
  strokeColor:"#0000FF",
  strokeOpacity:0.5,
  strokeWeight:1,
  fillColor:"#0000FF",
  fillOpacity:0.2
  });
<?php
if(isset($_GET['s'])&&isset($_GET['h'])&&$_GET["s"]!=0){
    $s=$_GET['s']*10;
    $h=$_GET['h']+180;
    //使用geometry库来计算起始点
    echo 'var startLL=new google.maps.geometry.spherical.computeOffset(myCenter, '.$s.', '.$h.');';
    echo 'var myTrip=[startLL,myCenter];';
    echo 'var flightPath=new google.maps.Polyline({
  path:myTrip,
  strokeColor:"#0000FF",
  strokeOpacity:0.8,
  strokeWeight:2
  });';
    echo 'flightPath.setMap(map);';
}
?>
  
  marker.setMap(map);
  myCity.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>

<div id="googleMap" style="width:400px;height:300px;"></div>
<br>

</body>
</html>

本文更新於 2014/05/19。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *