#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 дня.