0

Мне интересно узнать, как извлечь latlng из источника запроса маршрута, когда маршрут был рассчитан. Я хочу использовать это, чтобы нарисовать круг вокруг начала маршрута, который был сделан.API Google maps API - извлекает latlng из происхождения направлений?

function calcRoute() { 
start = document.getElementById("start").value; //value from start textbox 
end = document.getElementById("end").value; //value from end textbox 

var request = { 
    origin: start, 
    destination: end, 
    travelMode: google.maps.TravelMode.DRIVING 
}; 
directionsService.route(request, function(result, status) { 
    //if route can be generated 
    if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(result); 

     //circle.setCenter(); 

    }else{ 
     //display window alert with status error 
     window.alert('Directions request failed due to ' + status); 
    } 
}); 
} 

В Textboxes, которые используются для отправления и назначения используют метод автозаполнения со страницы Google Dev, который находится внутри моей функции Initialise, которая возвращает все типы местоположений.

//autocomplete section 
var inputStart = document.getElementById('start'); 
var optionsStart = {}; //Empty which will return all types 
autocomplete = new google.maps.places.Autocomplete(inputStart, optionsStart); 

var inputEnd = document.getElementById('end'); 
var optionsEnd = {}; //Empty which will return all types 
autocomplete = new google.maps.places.Autocomplete(inputEnd, optionsEnd); 
//-------------------------------------------------- 

ив исследовал о, мне нужно просто вернуться адреса затем использовать геокодировании извлечь данные, которые я хочу, или это может быть сделано с тем, как мой код теперь.

Я видел этот фрагмент кода, но не знаю, как его реализовать, если это тоже помогает.

result.routes[0].legs[0].start_location; 

ответ

0

Это будет работать да ...

result.routes[0].legs[0].start_location является LatLng object.

Таким образом, вы можете использовать это, чтобы создать маркер или установить свою центральную точку круга. Однако мы пропускаем код, в котором вы создаете круг. Но вы могли бы сделать что-то подобное:

circle.setCenter(result.routes[0].legs[0].start_location); 

и если ваш круг еще не создан:

var circleOptions = { 
    fillColor: '#FFFFFF', 
    fillOpacity: 0.25, 
    map: map, 
    center: result.routes[0].legs[0].start_location, 
    radius: 10000 
}; 

var circle = new google.maps.Circle(circleOptions); 

Ниже приведен полный пример:

JSFiddle demo

+0

Ahh спасибо , я думаю, я попробовал объявить latlng как переменную и ввести переменную в параметр setCenter, но не работал .. Спасибо! Теперь мне просто нужно иметь возможность редактировать raidius с каким-то слайдером, время для дополнительных исследований ха-ха. Еще раз спасибо. – aa29

+0

Добро пожаловать. Но если вы делаете 'var xxx = result.routes [0] .legs [0] .start_location' и используете эту переменную в' setCenter() ', нет никакой причины, которая бы не сработала ... Но вы должны использовать эту ** внутри ** функция запроса. – MrUpsidown

 Смежные вопросы

  • Нет связанных вопросов^_^