的 UPDATE 强> :
您可以通过发送查询来检索最近的点坐标 Google Visualization API :
Google Visualization API
// Initiate the GViz query var queryList = []; queryList.push("SELECT Location FROM "); queryList.push(tableId); queryList.push(" ORDER BY ST_DISTANCE(Location, LATLNG("); queryList.push(currentLat + "," + currentLng); queryList.push(")) "); queryList.push(" LIMIT 1"); var queryText = encodeURIComponent(queryList.join('')); var query = new google.visualization.Query( 'http://www.google.com/fusiontables/gvizdata?tq=' + queryText); // Handling the result of nearest location query query.send(function(response) { dataTable = response.getDataTable(); // If there is any result if (dataTable && dataTable.getNumberOfRows()) { console.log("Nearest Point is: " + dataTable.getValue(0,0)); // Result holds the coordinates of nearest point var result = dataTable.getValue(0,0).split(","); // Creates a Google Map LatLng from "result" var latlng = new google.maps.LatLng(result[0], result[1]); showRoute(latlng); } });
您可以查看实例 这里 。
你可以用 距离矩阵服务 为了这个目的。您只需从当前位置读取您的来源并发送请求即可 Distance Matrix Service 为每个回收点。还有一个例子 距离矩阵样本 。
Distance Matrix Service
var mylocation = new google.maps.LatLng(CURRENT_LOCATION_LAT, CURRENT_LOCATION_LNG); // Destination by address var destination1 = "Stockholm, Sweden"; // or destination by lat and lng var destination2 = new google.maps.LatLng(50.087692, 14.421150); // Sending request var service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [mylocation], destinations: [destination1, destination2], travelMode: google.maps.TravelMode.DRIVING, avoidHighways: false, avoidTolls: false }, callback); function callback(response, status) { // See Parsing the Results for // the basics of a callback function. }
你可以指定 旅行模式 它相应地计算持续时间。
的 google.maps.TravelMode.DRIVING 强> (默认)表示使用道路网络的标准行驶路线。 的 google.maps.TravelMode.BICYCLING,用于 强> 要求通过自行车道和骑自行车的方向骑自行车。首选街道。 的 google.maps.TravelMode.TRANSIT 强> 通过公共交通路线请求指示。 的 google.maps.TravelMode.WALKING,用于 强> 要求通过人行道和步行路径行走方向人行道。