需要在頁面文件中引用百度的js
@*<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=7Yw45dAtrHHEbGMrIhT3zIbd"></script>*@
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=785845caa6f424e7e67b658852802c4b"></script>
var self = this;
self.route = "";
self.site = "";
//城市
self.currentcity = Session.getCurrentCity(); //當前城市{Code:420100,Name:武漢}
self.currCityCode = self.currentcity.Code;
self.currCityName = self.currentcity.Name;
self.swEntity = {};
self.list = [];
var lineType = 0;
//初始化公交和地鐵的數量
var z = 0;
var dt = 0;
var state = false;
var busline = new BMap.BusLineSearch(self.currCityName, {
// renderOptions: { map: map, panel: "results" },
//獲取指定編號的所有線路
onGetBusListComplete: function (busListResult) {
var y = 0;
var up = 0;
state = false;
if (busListResult) {
up = busListResult.getNumBusList();
for (var i = 0, num = busListResult.getNumBusList() ; i < num; i++) {
var item = busListResult.getBusListItem(i);
ha = item.HA;
//獲取每條線路的站點
busline.getBusLine(item);
}
if (up == 0) {
if (++y >= up) {
if (z > 999) {
RelDiTie();
} else {
xilou();
}
}
}
busline.setGetBusLineCompleteCallback(function (lineResults) {
var jsonObj = lineResults;
var BusStaions = [];
for (var i = 0; i < jsonObj.BB.length; i++) {
BusStaions.push({ 'Name': jsonObj.BB[i].name, 'Lat': jsonObj.BB[i].position.lat, 'Lng': jsonObj.BB[i].position.lng, 'Address': jsonObj.BB[i].hk, 'ZoneCode': self.currCityCode, 'AreaId': '', 'IsChangeStation': 0 });
}
var busLineName = "";
if (jsonObj.name.indexOf('(') == -1) {
busLineName = jsonObj.name;
} else {
busLineName = jsonObj.name.substring(0, jsonObj.name.indexOf('('));
}
self.swEntity.Name = busLineName;
self.swEntity.BaiduName = jsonObj.name;
self.swEntity.Nos = z > 999 ? dt : z;
self.swEntity.LineType = lineType;
self.swEntity.Stations = BusStaions;
self.swEntity.ZoneCode = self.currCityCode;
self.list.push(self.swEntity);
self.site += BusStaions;
self.route += "路線:" + jsonObj.name + "<br/>";
$(".route").html(self.route);
//$(".site").text(self.site);
console.log("result:" + busLineName);
subWaysAdd(state);
if (++y >= up) {
if (z > 999) {
RelDiTie();
} else {
xilou();
}
}
});
}
}
});
function busSearch(name) {
busName = name;
busline.getBusList(busName);
}
self.Add = function () {
DelSubWayStationRel();
//for (var i = 0; i < 30; i++) {
// var dt = "地鐵" + i.toString();
// busSearch(dt);
//}
}
function xilou() {
z += 1;
if (z > 999) {
alert("公交采集完畢,確定后采集地鐵。");
RelDiTie();
//return;
} else {
busSearch(self.currCityName + z.toString());
// setTimeout(xilou, 15000);
}
}
function RelDiTie() {
dt += 1;
if (dt > 10) {
alert("地鐵采集完畢");
} else {
lineType = 1;
var dtName = self.currCityName + "地鐵" + dt.toString();
busSearch(dtName);
}
}
function DelSubWayStationRel() {
var url = "/CollectBus/DelSubWayStationRelations";
$http.post(url, { cityCode: self.currCityCode }).success(function (data, status, headers, config) {
if (data) {
alert("關系已清除,確定后開始采集新數據");
xilou();
}
}).error(function (data, status, headers, config) {
layer.alert("服務器錯誤,請聯系管理員");
});
}
//將獲取的信息保存到數據庫
function subWaysAdd(state) {
var url = "/CollectBus/SubWaysAdd";
$.ajax({
url: url,
type: 'post',
async: false,//使用同步的方式,true為異步方式
data: { sw: self.swEntity, lineType: self.swEntity.LineType, cityCode: self.currCityCode },//這里使用json對象
success: function (data) {
result = data.result;
self.swEntity = {};
state = true;
},
fail: function () {
}
});
}
//通過循環執行定時器,解決采集異常后程序終止問題,每隔5分鍾檢查一次
window.setInterval(function () {
if (!state) {
var yuxinsu = z;
var timeout = window.setTimeout(function () {
if (yuxinsu == z && z < 999) {
xilou();
}
window.clearTimeout(timeout);
}, 60000);
}
}, 300000);