2016-10-09 2 views
0

Я хочу сортировать широту долготы.Широта Долгота сортировка

У меня 10 широт/долготы, и я хочу нарисовать маршрут на них, но я не знаю, что является происхождением и которое предназначено. Для этого я хочу отсортировать их и нарисовать маршрут.

Мои пункты, как это:

[{lat:23.015422, long:72.540037},{lat:23.020320, long:72.557889},{lat:23.006890, long:72.563468},{lat:23.020873,long: 72.534372}] 

Есть ли способ? Предоставляет ли Google эту функцию?

+0

Пробовал ли вообще что-нибудь? – cody123

+0

Нет, потому что я смущен, как сортировать. спасибо –

+0

Есть ли у вас какие-либо намеки - как линии не должны пересекаться? Как бы вы сказали, что одна сортировка лучше других? –

ответ

0

Фактически маршрут, который вы хотите создать, представляет собой правильный порядок точек, следующих за этим путем, и если вы не сравниваете их с реальными маршрутами (чтобы попытаться найти тот, который соответствует подмножеству точек, которые у вас есть) Думаете, вы сможете определить, какая из них является начальной или конечной точкой.

Другими словами, если у вас есть баллы для Albacete, Barcelona и Cartagena, путешественник может посетить все три города, начиная с любого из них.

0

Поскольку вы не хотите, чтобы определить, какие из заданных координат является origin (обязательный параметр при отправке Directions Request), вариант, который вы можете использовать, чтобы соединить каждый LatLng в таких местах, как описано в Polylines.

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

Вот пример кода для добавления полилинии, как показано в документации:

// This example creates a 2-pixel-wide red polyline showing the path of William 
// Kingsford Smith's first trans-Pacific flight between Oakland, CA, and 
// Brisbane, Australia. 

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 3, 
    center: {lat: 0, lng: -180}, 
    mapTypeId: 'terrain' 
    }); 

    var flightPlanCoordinates = [ 
    {lat: 37.772, lng: -122.214}, 
    {lat: 21.291, lng: -157.821}, 
    {lat: -18.142, lng: 178.431}, 
    {lat: -27.467, lng: 153.027} 
    ]; 
    var flightPath = new google.maps.Polyline({ 
    path: flightPlanCoordinates, 
    geodesic: true, 
    strokeColor: '#FF0000', 
    strokeOpacity: 1.0, 
    strokeWeight: 2 
    }); 

    flightPath.setMap(map); 
} 

После того, как в состоянии соединить все заданные координаты, вы также можете иметь возможность настроить формы с помощью полилинии редактируемые и перетаскиваемые свойства с помощью Polyline class.

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

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