Jquery 在此处对航路点进行排序
我从一个web服务收到随机选择的坐标列表。当我在诺基亚这里绘制它们并试图找出其中最短的路线时,结果是一条分散的路线 进一步向下钻取显示这些坐标未排序 在将坐标转换为路线点列表时,是否有任何方法对坐标进行排序,或者我必须在绘制坐标之前对所有坐标进行排序?提前谢谢 代码如下所示Jquery 在此处对航路点进行排序,jquery,here-api,Jquery,Here Api,我从一个web服务收到随机选择的坐标列表。当我在诺基亚这里绘制它们并试图找出其中最短的路线时,结果是一条分散的路线 进一步向下钻取显示这些坐标未排序 在将坐标转换为路线点列表时,是否有任何方法对坐标进行排序,或者我必须在绘制坐标之前对所有坐标进行排序?提前谢谢 代码如下所示 router = new nokia.maps.routing.Manager(); var onRouteCalculated = function (observedRouter, key, value)
router = new nokia.maps.routing.Manager();
var onRouteCalculated = function (observedRouter, key, value) {
if (value == "finished") {
var routes = observedRouter.getRoutes();
//create the default map representation of a route
mapRoute = new nokia.maps.routing.component.RouteResultSet(routes[0]).container;
map.objects.add(mapRoute);
//Zoom to the bounding box of the route
map.zoomTo(mapRoute.getBoundingBox(), false, "default");
} else if (value == "failed") {
alert("The routing request failed.");
}
};
router.addObserver("state", onRouteCalculated);
var modes = [{
type: "shortest",
transportModes: ["car"],
options: "avoidTollroad",
trafficMode: "default"
}];
function CreateRouteByMultipleWaypoints() {
if (typeof (mapRoute) != 'undefined' || mapRoute != null) {
map.objects.remove(mapRoute);
}
router.clear();
var waypoints = new nokia.maps.routing.WaypointParameterList();
var RUidsByChoice = $('#dialogforPlotRoute').text().trim().split(',');
for (index = 0; index < selectedcoOrdinatestoPlanRoute.length; index++) {
waypoints.addCoordinate(new nokia.maps.geo.Coordinate(parseFloat(selectedcoOrdinatestoPlanRoute[index].split('>')[0]), parseFloat(selectedcoOrdinatestoPlanRoute[index].split('>')[1])));
}
router.calculateRoute(waypoints, modes);
}
router=new nokia.maps.routing.Manager();
var onRouteCalculated=函数(ObservedOuter、键、值){
如果(值=“已完成”){
var routes=observedRouter.getRoutes();
//创建管线的默认地图表示形式
mapRoute=new nokia.maps.routing.component.RouterResultSet(routes[0])容器;
map.objects.add(mapRoute);
//缩放到管线的边界框
zoomTo(mapRoute.getBoundingBox(),false,“默认值”);
}else if(值==“失败”){
警报(“路由请求失败”);
}
};
router.addObserver(“状态”,onRouteCalculated);
var模式=[{
键入:“最短”,
运输方式:[“汽车”],
选项:“避免通行费”,
流量模式:“默认”
}];
函数CreateRouteByMultipleWaypoints(){
if(typeof(mapRoute)!=“未定义”| | mapRoute!=null){
map.objects.remove(mapRoute);
}
router.clear();
var waypoints=新的nokia.maps.routing.WaypointParameterList();
var RUidsByChoice=$('#dialogforPlotRoute').text().trim().split(',');
对于(索引=0;索引')[0])、parseFloat(SelectedCoordinatesPlanRoute[index].split('>')[1]);
}
路由器计算器输出(航路点、模式);
}
我使用旅行商问题算法在所有给定坐标中找出最短路径
function sortWayPoints() {
var coordinatsArraytoPlot = selectedcoOrdinatestoPlanRoute;
//Starting location some hard coded value
var startPoint = new nokia.maps.geo.Coordinate(39.7391500, -104.9847000);
var mainArray = [];
mainArray.push(startPoint);
while (coordinatsArraytoPlot.length > 0) {
var sortArr = [];
for (index = 0; index < coordinatsArraytoPlot.length; index++) {
var coordinate2 = new nokia.maps.geo.Coordinate(parseFloat(coordinatsArraytoPlot[index].split('>')[0]), parseFloat(coordinatsArraytoPlot[index].split('>')[1]));
var dist = startPoint.distance(coordinate2);
sortArr.push(dist);
}
var test = sortArr[0];
var lessiNDEX = 0;
for (var i = 1; i < sortArr.length; i++) {
if (sortArr[i] < test) {
test = sortArr[i];
lessiNDEX = i;
}
}
// The co ordinates are available in format "lat>long" so i have to
//split them and convert them to parseflot to get compatible result
startPoint = new nokia.maps.geo.Coordinate(parseFloat(coordinatsArraytoPlot[lessiNDEX].split('>')[0]), parseFloat(coordinatsArraytoPlot[lessiNDEX].split('>')[1]));
mainArray.push(startPoint);
//Remove calculated co ordinate from main array
coordinatsArraytoPlot.splice(lessiNDEX, 1);
}
//mainArray will contain all sorted Co ordinates
}
函数sortWayPoints(){
var CoordinarRayTopLot=所选的Coordinates平面路线;
//起始位置某些硬编码值
var startPoint=new nokia.maps.geo.Coordinate(39.7391500,-104.9847000);
var mainArray=[];
mainArray.push(起始点);
while(coordinarsarraytoplot.length>0){
var-sortArr=[];
对于(索引=0;索引')[0]),parseFloat(coordinarraytoplot[index].split('>')[1]);
var dist=起点距离(坐标2);
索塔推(距离);
}
var测试=Sortar[0];
var-lessiNDEX=0;
对于(变量i=1;ilong”,因此我必须
//拆分它们并将它们转换为parseflot以获得兼容的结果
startPoint=new nokia.maps.geo.Coordinate(parseFloat(coordinarraytoplot[lessiNDEX].split('>')[0]),parseFloat(coordinarraytoplot[lessiNDEX].split('>')[1]);
mainArray.push(起始点);
//从主阵列中删除计算的坐标
坐标RAYTOPLOT拼接(lessiNDEX,1);
}
//mainArray将包含所有已排序的坐标
}