我想通過郵政編碼或城市名稱顯示路徑地圖和點之間的距離l ike我們輸入和來自地點和地圖將在它們之間生成,總之間的距離他們將被計算,請幫助它是緊急的。 在此先感謝如何通過郵政編碼在谷歌地圖上繪製路徑
1
A
回答
1
您可以分三步
1)生成郵寄城市或郵政編碼地圖
創建map1.php
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example:Post City or Zip</title>
</head>
<body >
<form action="map2.php" method="post" >
Enter 1st zip code/city <input type="text" name="input1" id="input1"><br/>
Enter 2nd zip code/city <input type="text" name="input2" id="input2">
<input type="submit">
</form>
</body>
</html>
2)創建map2.php並生成地圖做到這一點
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Directions Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var chicago = new google.maps.LatLng(41.850033, -87.6500523);
var myOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: chicago
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var start = '<?php echo $_POST['input1']; ?>';
var end = '<?php echo $_POST['input2']; ?>';
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
</script>
</head>
<body onLoad="initialize(),calcRoute()">
<?php
// calculate laglong by address and zip code
function getLatLong($address){
if (!is_string($address))die("All Addresses must be passed as a string");
$_url = sprintf('http://maps.google.com/maps?output=js&q=%s',rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false;
preg_match('!center:\s*{lat:\s*(-?\d+\.\d+),lng:\s*(-?\d+\.\d+)}!U', $_result, $_match);
$_coords['lat'] = $_match[1];
$_coords['long'] = $_match[2];
}
return $_coords;
}
$to = getLatLong($_POST['input1']);echo "<br/>";print_r($to);
$from = getLatLong($_POST['input2']);echo "<br/>";print_r($from);
echo distance($to['lat'], $to['long'], $from['lat'], $from['long'], "m") . " miles";
// // calculate distance by lat long
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
?>
<div id="map_canvas" style="top:30px;"></div>
</body>
</html>
生成map和getLatLong()函數查找laglong和距離函數查找城市或郵政編碼之間的距離
0
首先,你必須找到你的郵政編碼的地理位置,你可以很容易地找到它使用gmaps api。然後使用「distanceTo」方法找到點之間的距離(您的地理位置和郵政編碼生成的地理點)。 distanceTo方法以米爲單位給出距離。
相關問題
- 1. 谷歌地圖的郵政編碼
- 2. 郵政編碼谷歌地圖返回
- 3. 谷歌地圖 - 郵政編碼陰謀
- 4. 谷歌地圖+基於郵政編碼的繪圖點(標記)
- 5. 顯示谷歌地圖上的郵政編碼/郵政編碼範圍
- 6. 谷歌地圖:繪製優化路徑
- 7. 谷歌地圖地理編碼器:返回郵政編碼
- 8. 通過URL在谷歌地圖片段上繪製路線
- 9. 如何找到位置,谷歌地圖使用郵政編碼
- 10. 如何提取郵政編碼從V3谷歌地圖API
- 11. 谷歌地圖上繪製路線
- 12. 谷歌地圖在Android上繪製動畫路徑
- 13. 在谷歌靜態地圖上繪製路徑
- 14. 根據經緯度在谷歌地圖上繪製路徑
- 15. 在谷歌地圖上繪製線條/路徑
- 16. 如何在谷歌地圖api上繪製多個通過點的路線android
- 17. 通過谷歌地圖v2繪製android
- 18. 谷歌地圖郵政編碼錯誤的地方?
- 19. 在谷歌地圖中正確填寫郵政編碼標籤
- 20. 如何在谷歌地圖上繪製虛線( - )半徑swift?
- 21. 谷歌地圖地理編碼在澳大利亞郵政編碼0821只有
- 22. 谷歌地圖+谷歌本地搜索從英國郵政編碼
- 23. 谷歌地圖街道視圖和郵政編碼
- 24. 從谷歌地圖V2上的KML文件繪製路徑
- 25. 谷歌地圖 - 加設道路的方向,圓,郵政編碼地區
- 26. 谷歌是如何獲得地圖上郵政編碼的大綱的?
- 27. 谷歌地圖API - 想要顯示地圖上的郵政編碼 - JS/PHP
- 28. 如何使用帶有多個位置(地址以及郵政編碼)的api v3繪製谷歌地圖?
- 29. 谷歌反向地理編碼 - 獲取郵政編碼
- 30. IOS:使用谷歌地圖繪製最佳路線路徑
感謝這個有價值的code.it的作品 – user1514019 2012-07-10 20:49:09