Можем ли мы рисовать собственные маршруты на картах Google?

Я изучаю API карт Google. У меня есть веб-служба, которая возвращает объект GeoJSON в ответ. Я хочу отобразить его на картах Google. Я пробовал ниже API;

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
    }
  });

Это дает нам GeoJSON для заданного начала и конца в параметре запроса. Я пытаюсь получить ответ GeoJSON от своей службы и вместо данных Google пытаюсь отобразить свой собственный ответ.

Данные, возвращаемые моей пользовательской службой, имеют тот же формат, что и Google.

Данные, возвращаемые из службы Google, имеют форму, аналогичную тому, что я построил, и объект такой же, как ответ Google DirectionsService.

Пожалуйста, проверьте детали ниже; https://developers.google.com/maps/documentation/javascript/directions#DirectionsResults

"маршруты":[{"границы":{"северо-восток":{"широта":30.2844454,"lng":-97.7040698},"юго-запад":{"широта":30.2121885,"lng":-97.7506593}}, "copyrights":"Данные карты © Google, 2014","legs":.... Шаги....}

РЕДАКТИРОВАТЬ: я попробовал другой вариант с API addGeoJson() как;

function loadGeoJsonString(geoString) {
  var geojson = JSON.parse(geoString);
  map.data.addGeoJson(geojson);
  zoom(map);
}

Строка JSON, которую я использую, проверяется jsonlint.


person Vijay Balkawade    schedule 09.04.2014    source источник
comment
Есть вопрос? Как выглядят ваши данные? Что вы имеете в виду, когда говорите, что данные, возвращаемые моей специальной службой, имеют тот же формат, что и Google? Вы говорите, что ваш формат — GeoJSON; DirectionsService не возвращает GeoJSON.   -  person geocodezip    schedule 09.04.2014
comment
@geocodezip - Пожалуйста, найдите рассматриваемые обновления.   -  person Vijay Balkawade    schedule 09.04.2014
comment
возможный дубликат stackoverflow.com/questions/19320676/   -  person Dr.Molle    schedule 10.04.2014


Ответы (1)


Что-то вроде этого?

directionsDisplay = new google.maps.DirectionsRenderer();
var Basingstoke = new google.maps.LatLng(51.2949612, -1.0643864);
var mapOptions = {
  zoom:7,
  center: Basingstoke
}
map = new google.maps.Map(document.getElementById('map'), mapOptions);
directionsDisplay.setMap(map);

var point1 = new google.maps.LatLng(51.2941293,-0.9139252);
var point2 = new google.maps.LatLng(51.3250339,-0.8050919);

var wps = [{ location: point1 }, { location: point2 }];

var org = new google.maps.LatLng ( 51.2949612, -1.0643864);
var dest = new google.maps.LatLng ( 52.3069282, -0.7540226);

var request = {
        origin: org,
        destination: dest,
        waypoints: wps,
        durationInTraffic: true,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
        };


directionsService = new google.maps.DirectionsService();
directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                var newRoute = response.routes[0].legs[2].duration.value;
                directionsDisplay.setDirections(response);
                alert ('Travel Time: ' + newRoute + ' seconds');
            }
            else
                alert ('failed to get directions');
        });


}

google.maps.event.addDomListener(window, 'load', initialize);
person user2837961    schedule 09.04.2014
comment
Это похоже на образец Google. Я пытаюсь использовать пользовательские данные, а не данные, возвращаемые службой Google. - person Vijay Balkawade; 09.04.2014