天地图js搜索路径循环回调问题 js回调天地图路径搜索 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有看到你在回调函数 searchResult 中做任何事情显然 TDrivingRoute 是通过 ajax 或 jsonp 进行异步查询的(不然就没必要用回调了)于是你在循环中 drivingRoute = new TDrivingRoute(map, config); 势必是后面的覆盖掉前面的(覆盖掉了,也就不会有结果了)另外 searchDrivingRoute 是做什么的?跟 TDrivingRoute 是什么关系? function searchDrivingRoute(startLngLat, endLngLat) { //清空地图 map.clearOverLays(); //设置驾车策略 drivingRoute.setPolicy(0); //驾车路线搜索 drivingRoute.search(startLngLat, endLngLat); }//显示公交搜索结果 function searchResult(result) { //添加起始点 // createStartMarker(); obj = result; // var resultList = document.createElement("div"); //获取方案个数 var routes = result.getNumPlans(); for (var i = 0; i < routes; i++) { //获得单条驾车方案结果对象 var plan = result.getPlan(i); getPoints(plan.getPath()); } }function getPoints(lnglats) {// points.splice(0, points.length); for (var i = 0; i < lnglats.length - 1; i++) { points.push(new TLngLat(lnglats[i].lng, lnglats[i].lat)); } }我是将每两个点搜索后,将搜索的点存入points数组,这样drivingRoute就可以覆盖了。用的也都是天地图api的内置函数,但是searchResult这个函数只执行一次,有办法让它同步执行吗? 还是我开始说的:如果没有循环,那么只执行一次是没有问题的但是在循环中,老的 TDrivingRoute 被新的 TDrivingRoute 实例覆盖了,因此老的就不能继续执行了。所以你只能看到最后一次的结果你写成这样可能就对了var drivingRoute = new TDrivingRoute(map, config); java.util.Date类型在Ext表格中显示的问题 在javascript里名称与编码对应的操作如果提高效率? 一个很复杂的问题 求高手帮忙看看一个正则的奇怪问题 怎么用JS获取页面URL中某一段字符的值 可以用js杀掉别个域下的弹窗吗? 收集列表框间选项间移动的脚本(阿信) 请提供html的格式及注解 怎么判断日期的前后关系 请问Text单行单列输入元素对象有没有enable或disable这样的属性?怎样使其失效? Javascript/Jquery 实现谷歌浏览器F12开发模式的选择效果 如何使遮罩层在背景层之上显示?
于是你在循环中 drivingRoute = new TDrivingRoute(map, config); 势必是后面的覆盖掉前面的(覆盖掉了,也就不会有结果了)
另外 searchDrivingRoute 是做什么的?跟 TDrivingRoute 是什么关系?
//清空地图
map.clearOverLays();
//设置驾车策略
drivingRoute.setPolicy(0);
//驾车路线搜索
drivingRoute.search(startLngLat, endLngLat);
}
//显示公交搜索结果
function searchResult(result) {
//添加起始点
// createStartMarker(); obj = result;
// var resultList = document.createElement("div");
//获取方案个数
var routes = result.getNumPlans();
for (var i = 0; i < routes; i++) {
//获得单条驾车方案结果对象
var plan = result.getPlan(i);
getPoints(plan.getPath());
}
}
function getPoints(lnglats) {
// points.splice(0, points.length);
for (var i = 0; i < lnglats.length - 1; i++) {
points.push(new TLngLat(lnglats[i].lng, lnglats[i].lat));
}
}
我是将每两个点搜索后,将搜索的点存入points数组,这样drivingRoute就可以覆盖了。用的也都是天地图api的内置函数,但是searchResult这个函数只执行一次,有办法让它同步执行吗?
但是在循环中,老的 TDrivingRoute 被新的 TDrivingRoute 实例覆盖了,因此老的就不能继续执行了。所以你只能看到最后一次的结果
你写成这样可能就对了
var drivingRoute = new TDrivingRoute(map, config);