Google Maps API를 사용하여 데이터베이스에서 웨이 포인트 세트를 라우팅하고 최적화합니다. 경유지는 무작위 순서로 공급됩니다. 적절한 경로 순서를 만들기 위해 googlemaps를 통해 경유지를 최적화 한 후에는 데이터베이스에서 경로 순서를 업데이트 할 수 있도록 경로를 원래 순서와 연관시키는 방법이 필요합니다.GoogleMap 웨이 포인트 최적화 및 원래 시퀀스에 연결
예를 들어DB를에서 내 원본 데이터 (LoadNum가 시작 비어) 아래처럼 보일 수 있습니다 : Google지도는 경로를 최적화 한 후
이LoadNum Order address City State Zip
blank 1 456 Elm Street Chicago IL 12345
blank 2 123 Main Street Cleveland OH 12345
blank 3 678 Market Street Beverly Hills CA 90210
주소가 각에 가까운 경기에 약간 변경 될 수 있습니다 그 거리의, 범위와 함께 아래와 같이;
LoadNum Order address City State Zip
blank 2 120-160 Main Street Cleveland OH 12345
blank 1 200-300 Elm Street Chicago IL 12345
blank 3 678 Market Street Beverly Hills CA 90210
는 Google지도 또한 내가 데이터베이스에 loadnumber으로 할당 할 경로 세그먼트 번호를 반환하지만 나는 경기를 보장 할 수있는 방법이 없습니다. 주소 (googlemaps)에 식별자 (OrderNumber)를 전달하고 이상이있는 레코드가 반환되면 주소가 변경된 경우에도 주문 번호 'x'가 1임을 알 수 있습니다.
아래 코드 스 니펫,
이directionsService.route({
origin: document.getElementById('StartBoxAjax').value,
destination: document.getElementById('EndBoxAjax').value,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: 'DRIVING'
}, function (response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
var route = response.routes[0];
var string = [];
document.getElementById('<%=JScriptParm.ClientID %>').value = ""
var summaryPanel = document.getElementById('directions-panel');
summaryPanel.innerHTML = '';
// For each route, display summary information.
for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i + 1;
summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment +
'</b><br>';
summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
//document.getElementById('JScriptParm').value += routeSegment;
document.getElementById('<%=JScriptParm.ClientID %>').value += routeSegment + ',' + route.legs[i].end_address + '|';
// string += routeSegment + ',' + route.legs[i].end_address + '|';
// document.getElementById('<%=JScriptParm.ClientID %>').value = string;
}
그런 다음 코드에서 내가 DB를하고 싶으면 뒤에 : 먼저 자바 스크립트 내가 변수로 routeSegment 및 EndAddress을 캡처하고있어 바닥 (그래서 그것을 볼 수 있습니다 지금 실제로 텍스트 필드) 근처입니다 "AddressInDB가 JavaScript에서 반환 된 주소와 일치"하는 위치를 업데이트하십시오.
필자의 예에서 매개 변수는 도시와 주이지만, 충분히 구체적이지는 않습니다. 길고 짧다는 것은 GoogleMaps Javascript API를 통해 식별/반환 매개 변수를 전달하는 방법입니까, 아니면 내가 유지 한 것을 성취 할 수있는 또 다른 방법입니까?
감사합니다.
정말 감사합니다. 나는 웨이 포인트 (아래)에 대한 문서를 살펴 봤지만 찾고 있던 것을 찾지 못했습니다. : https : //developers.google.com/maps/documentation/javascript/directions#Waypoints – bairdmar