Как я могу сохранить информацию о маршруте API карт Google с помощью symfony в базу данных

#javascript #php #mysql #symfony #google-maps-api-3

#javascript #php #mysql #symfony #google-maps-api-3

Вопрос:

Я изучаю Symfony и работаю над приложением. Я создаю карту и создаю информацию о направлении для пункта назначения.

введите описание изображения здесь

Мне нужно сохранить эту информацию о направлении в базе данных. Но я не знаю, как я могу это сделать. Возможно, я преобразую эту информацию о направлении в массив, но я не знаю как. Вот скрипт для отображения и расчета маршрута

       `<script type="text/javascript">
var source, destination;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
google.maps.event.addDomListener(window, 'load', function () {
    new google.maps.places.SearchBox(document.getElementById('txtSource'));
    new google.maps.places.SearchBox(document.getElementById('txtDestination'));
    directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': true });
});

function GetRoute() {
    var karabuk= new google.maps.LatLng(41.20488, 32.62768);

    var mapOptions = {
        zoom: 11,
        center: karabuk
    };
    map = new google.maps.Map(document.getElementById('dvMap'), mapOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById('dvPanel'));

    //*********DIRECTIONS AND ROUTE**********************//
    source = {lat:41.206373, lng:32.659379};
    destination = document.getElementById("txtDestination").value;

    var request = {
        origin: source,
        destination: destination,
        travelMode: google.maps.TravelMode.DRIVING
    };
    directionsService.route(request, function (response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
        }
    });

    //*********DISTANCE AND DURATION**********************//
    var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix({
        origins: [source],
        destinations: [destination],
        travelMode: google.maps.TravelMode.DRIVING,
        unitSystem: google.maps.UnitSystem.METRIC,
        avoidHighways: false,
        avoidTolls: false
    }, function (response, status) {
        if (status == google.maps.DistanceMatrixStatus.OK amp;amp; response.rows[0].elements[0].status != "ZERO_RESULTS") {
            var distance = response.rows[0].elements[0].distance.text;
            var duration = response.rows[0].elements[0].duration.text;
            var dvDistance = document.getElementById("dvDistance");
            dvDistance.innerHTML = "";
            dvDistance.innerHTML  = "Distance: "   distance   "<br />";
            dvDistance.innerHTML  = "Duration:"   duration;

        } else {
            alert("Unable to find the distance via road.");
        }
    });

    var route=directionsDisplay.setDirections(response);

}
 

`

Я определил столбец в базе данных с типом array. Я не нашел, как я могу преобразовать информацию о направлении в массив и сохранить ее.

Ответ №1:

Бегло взглянув, я предполагаю, что этот код

 if (status == google.maps.DirectionsStatus.OK) {
    directionsDisplay.setDirections(response);
}
 

… это то, что запускается после получения указаний от Google. Вы можете console.log(response) зайти туда и проверить консоль, надеюсь, она должна содержать данные, которые вам нужно сохранить в БД.

После того, как вы захватили его, ОТПРАВЬТЕ его как JSON (используя jQuery или что-то в этом роде) в свою конечную точку symfony и измените тип столбца на тип JSON, и вы должны получить его оттуда.

Комментарии:

1. большое спасибо за ответ. Я новичок, су, я не знаю, как я могу это сделать. Не могли бы вы поделиться учебным пособием и т. Д. Я должен решить эту проблему за 4 дня.