纬度经度排序

时间:2016-10-09 12:29:50

标签: java android google-maps

我想对纬度经度进行排序。

我有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会提供此功能吗?

2 个答案:

答案 0 :(得分:1)

实际上你想要创建的路线表示遵循该路径的点的正确顺序,除非你将它们与真实路线进行比较(试图找到一个与你所拥有的点子集相匹配的路径)我不这样做认为你将能够确定它们中的哪一个是起点或终点。

换句话说,如果你有阿尔巴塞特,巴塞罗那和卡塔赫纳的积分,旅行者可以从其中任何一个开始访问这三个城市。

答案 1 :(得分: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中的建议解决方案,其中还提供了工作代码段。希望它有所帮助!