2010-10-15 50 views
0

我有一个有很多地址的页面。我想在所有地址旁边都有“定位”链接,这些地址将带我们到另一个页面并显示谷歌地图上的位置。因为我是一个总的noob当谈到谷歌地图,任何人都可以帮助我如何做到这一点?我绝对不想为每个地址位置创建单独的页面。任何时尚/高效的方法?链接到谷歌地图上的位置

+1

http://code.google.com/apis/maps/documentation/javascript/basics.html – 2010-10-15 09:03:02

回答

0

首先从像Google这样的地理编码服务中获取经纬度。

$zoom = 15; 
$type = 'ROADMAP'; 
$data = file_get_contents("http://maps.google.com/maps/geo?output=csv&q=".urlencode($address)); 
$arr = explode(",", $data); 
if (count($arr)>=4) { 
    if ($arr[0]==200) { 
    $lat = $arr[2]; 
    $long = $arr[3]; 
    } else { 
    throw new Exception('Lookup failed'); 
    } 
} else { 
    throw new Exception('Lookup failed'); 
} 

然后返回使用Google Maps API的页面。

<html style="height: 100%"> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title><?php echo $lat; ?>, <?php echo $long; ?></title> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    function initialize() { 
    var myLatlng = new google.maps.LatLng(<?php echo $lat; ?>,<?php echo $long; ?>); 
    var myOptions = { 
     zoom: <?php echo $zoom; ?>, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.<?php echo $type; ?> 
    } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title:"<?php echo $lat; ?>, <?php echo $long; ?>" 
    }); 
    } 
</script> 
</head> 
<body onload="initialize()" style="height: 100%; margin: 0px; padding: 0px"> 
    <div id="map_canvas" style="height:100%;"></div> 
</body> 

</html> 

你可以在这里尝试一下:http://www.exorithm.com/algorithm/view/show_address