Javascript 如何将Google Maps V3距离结果保存到MySQL数据库?

Javascript 如何将Google Maps V3距离结果保存到MySQL数据库?,javascript,mysql,database,google-maps,Javascript,Mysql,Database,Google Maps,(对于这是一个如此基本的核心问题,我提前表示歉意) 我有一个带有位置信息的MySQL数据库,还有一个PHP脚本,可以将用户提交的新位置放入数据库。然后,我想(立即)使用Google Maps directions请求在数据库中查找新提交的位置和现有位置子集之间的距离,并将这些距离存储在数据库中 我可以通过PHP选择位置子集,并使用JavaScript通过Google Maps获取距离数据,但如何将这些JavaScript变量传输到我的数据库-在MySQL数据库中将一组JavaScript变量保存

(对于这是一个如此基本的核心问题,我提前表示歉意)

我有一个带有位置信息的MySQL数据库,还有一个PHP脚本,可以将用户提交的新位置放入数据库。然后,我想(立即)使用Google Maps directions请求在数据库中查找新提交的位置和现有位置子集之间的距离,并将这些距离存储在数据库中

我可以通过PHP选择位置子集,并使用JavaScript通过Google Maps获取距离数据,但如何将这些JavaScript变量传输到我的数据库-在MySQL数据库中将一组JavaScript变量保存为单独条目的最佳方法是什么

谢谢你的帮助


Carl

如果您已经将距离正确地加载到JS代码中的变量中,那么您可以制作一个XmlHttpRequest将它们发送到您的服务器,PHP脚本将它们放入数据库中。伪代码如下所示:

JS:

PHP:


我有一个项目遇到了同样的问题。如果在A点和B点之间,您可以参考

如果分数是多少

editroutes = JSON.parse(editroutes);
origin = editroutes.ag.origin;
destination = editroutes.ag.destination;
var ag = editroutes.ag.waypoints;

for(i=0;i<ag.length;i++){
    if(typeof ag[i].location == 'object'){
        waypoints.push({location:new google.maps.LatLng(ag[i].location.Ia, ag[i].location.Ja),stopover:ag[i].stopover});
    }else if(typeof ag[i].location == 'string'){
        waypoints.push({location:ag[i].location,stopover:ag[i].stopover});
    }
}

avoidHighways =  editroutes.ag.avoidHighways;
avoidTolls = editroutes.ag.avoidTolls;
var request = {
       origin: origin,
       destination: destination,
       waypoints: waypoints,
       travelMode: google.maps.DirectionsTravelMode.DRIVING,
       optimizeWaypoints: false,
       avoidHighways: avoidHighways,
       avoidTolls: avoidTolls
};
directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(response);
    }
});
editroutes=JSON.parse(editroutes);
origin=editroutes.ag.origin;
目的地=editroutes.ag.destination;
var ag=editroutes.ag.航路点;
对于(i=0;i
$pointId1 = $_POST['pid1'];
$pointId2 = $_POST['pid2'];
$distance = $_POST['distance'];
mysql_query("insert into distances values ($pointId1, $pointId2, $distance)");
editroutes = JSON.parse(editroutes);
origin = editroutes.ag.origin;
destination = editroutes.ag.destination;
var ag = editroutes.ag.waypoints;

for(i=0;i<ag.length;i++){
    if(typeof ag[i].location == 'object'){
        waypoints.push({location:new google.maps.LatLng(ag[i].location.Ia, ag[i].location.Ja),stopover:ag[i].stopover});
    }else if(typeof ag[i].location == 'string'){
        waypoints.push({location:ag[i].location,stopover:ag[i].stopover});
    }
}

avoidHighways =  editroutes.ag.avoidHighways;
avoidTolls = editroutes.ag.avoidTolls;
var request = {
       origin: origin,
       destination: destination,
       waypoints: waypoints,
       travelMode: google.maps.DirectionsTravelMode.DRIVING,
       optimizeWaypoints: false,
       avoidHighways: avoidHighways,
       avoidTolls: avoidTolls
};
directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(response);
    }
});