使用百度地图api接口获取公交地图路线和车站
需要在页面文件中引用百度的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);
使用百度地图api接口获取公交地图路线和车站的更多相关文章
- 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)
<?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){ if(!empty($_SERVE ...
- 简单几行代码使用百度地图API接口分页获取信息
首发于: 万能助手扩展开发:使用百度地图API接口分页获取信息_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=426 使用 ...
- 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...
- 利用百度地图API,获取经纬度坐标
利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...
- Angular 调用百度地图API接口
Angular 调用百度地图API接口 参考原文:https://blog.csdn.net/yuyinghua0302/article/details/80624274 下面简单介绍一下如何在Ang ...
- vue框架导入百度地图API接口的方法
百度请求API接口:
- 【百度地图API】如何利用地图API制作汽车沿道路行驶的动画?——如何获得道路层数据
原文:[百度地图API]如何利用地图API制作汽车沿道路行驶的动画?--如何获得道路层数据 有几个做汽车导航的朋友问我说,他们想在地图上制作一辆车沿着道路行驶的动画.可是,百度地图的道路数据并没有公开 ...
- 【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)
原文:[百度地图API]如何自定义地图图层?实例:制作麻点图(自定义图层+热区) 摘要:自定义地图图层的用途十分广泛.常见的应用,比如制作魔兽地图和清华校园地图(使用切图工具即可轻松实现).今天我们来 ...
- [转]百度地图API详解之地图坐标系统
博客原文地址:http://www.jiazhengblog.com/blog/2011/07/02/289/ 我们都知道地球是圆的,电脑显示器是平的,要想让位于球面的形状显示在平面的显示器上就必然需 ...
随机推荐
- ZeroMQ接口函数之 :zmq_bind - 绑定一个socket
ZeroMQ 官方地址 : http://api.zeromq.org/4-0:zmq-bind zmq_bind(3) ZMQ Manual - ZMQ/3.2.5 Name zmq_bind - ...
- 从网易与淘宝的font-size思考前端设计稿与工作流
本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问题,内容较多,但对你的技术和工作一定有价值,欢迎阅读和点 ...
- java文件下载,上传,解压方法
1.文件下载(亲测可用) private static final int BUFFER = 2 * 1024;// 缓冲区大小(2k)private boolean isSuccess = true ...
- Xamarin的不归路-连接MAC失败
昨天费了老大劲才配置连接好MAC虚拟机,今天居然又连接不上了. 记录一下最后的解决办法: 直接用“Add Mac”添加虚拟机,一定要填写ip地址,为啥要写ip?我也不知道,因为我填写“MacdeMac ...
- Java 对象拷贝方式
(1)BeanUtils.cloneBean()使用: http://www.cnblogs.com/fervour/archive/2009/12/18/1627868.html package c ...
- Java WebService 简单实例
前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作. 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 ...
- php上传大文件时,服务器端php.ini文件中需要额外修改的选项
几个修改点: 1.upload_max_filesize 上传的最大文件 2.post_max_size 上传的最大文件 3.max_execution_time 修改为0表示无超时,一直等待 4.m ...
- Codeforces Good Bye 2016 D 模拟搜索?
给出烟花的爆炸方式和爆炸次数 问最后有多少个格子会被炸到 如果dfs的话会超时... 利用模拟每一层来搜索..? 思想就是一开始有一个爆炸点向上 然后模拟完第一段 会产生一个爆炸点 朝两个方向 就用v ...
- Source Insight 3.X 标签插件v1.0发布
Source Insight可以说是一款程序员必备的开发/阅读源码工具,美中不足的是SI没有标签栏,多个源码之间切换很不方便,于是我就乘闲暇之余写了该作品sihook:标签插件;不过严格意义上来说si ...
- Linux一些零碎
1.设置时间和市区 1.tzselect 2.sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime