天地图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); 超难!JS冲突问题,一天了没搞定,请教各路高人! 为什么说with执行效率很慢呢 用javascript 或CSS能改变一个图片上部分颜色吗 页面怎么接收传递过来的值啊? 再求正则表达式 关于表单验证中提示性语言的问题 请问如何引用.js? 请教,在线等待 jQuery当中$(this)问题 用js自动生成一个select下拉选项框 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);