2016-03-15 22 views
0

我正在使用此代碼來查找200公里半徑(即與特定點的道路距離)下的位置的最小最大值latlong。但它返回的是徑向距離而不是道路距離的結果。任何人都可以幫我擺脫這個問題嗎?如何查找道路距離圓範圍內的位置名稱?

<?php 

$lat = 28.6663433; 
$long = 77.067959; 
$radius = 200; // Kilometers 
$earth_radius = 6371; 

$lat_max = $lat + rad2deg($radius/$earth_radius); 
$long_max = $long + rad2deg($radius/$earth_radius/cos(deg2rad($lat))); 

$lat_min = $lat - rad2deg($radius/$earth_radius); 
$long_min = $long - rad2deg($radius/$earth_radius/cos(deg2rad($lat))); 


echo 'max lat: '.$lat_max.'<br/>'; 
echo 'max long: '.$long_max.'<br/>'; 
echo 'min lat: '.$lat_min.'<br/>'; 
echo 'min lat: '.$long_min.'<br/>'; 

?> 
+0

在此處查找google map api https://developers.google.com/maps/documentation/javascript/ – codeGig

回答

0

道路的距離,你可以看看https://developers.google.com/maps/documentation/javascript/distancematrix#distance_matrix_requests,也有不同的例子:

var origin1 = new google.maps.LatLng(55.930385, -3.118425); 
var origin2 = "Greenwich, England"; 
var destinationA = "Stockholm, Sweden"; 
var destinationB = new google.maps.LatLng(50.087692, 14.421150); 

var service = new google.maps.DistanceMatrixService(); 
service.getDistanceMatrix(
    { 
    origins: [origin1, origin2], 
    destinations: [destinationA, destinationB], 
    travelMode: google.maps.TravelMode.DRIVING, 
    transitOptions: TransitOptions, 
    drivingOptions: DrivingOptions, 
    unitSystem: UnitSystem, 
    avoidHighways: Boolean, 
    avoidTolls: Boolean, 
    }, callback); 

function callback(response, status) { 
    // See Parsing the Results for 
    // the basics of a callback function. 
} 

您將需要一個API密鑰。

相關問題