我想对纬度经度进行排序。
我有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 :(得分: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中的建议解决方案,其中还提供了工作代码段。希望它有所帮助!