获得下载密码
可以通过以下方法购买数据库
工行 上海市分行第二营业部 夏礼娟
622202 1001017773083
建行 上海市分行天钥桥路支行 夏礼娟
4367 4212 1723 4606 366
注:除淘宝网购买以外,请在支付前和支付完成后联系客服人员获取下载密码或数据库;网站上所标注数据库价格均不包含税收,如需发票请在购买前联系客服人员。
联系客户服务
  • WangWang 旺旺
  • QQ (销售) 980407339
  • QQ (技术) 8409035
  • Mobile +86 13816081426
  • Fax +8621 58303685
  • Email Xq
全国公交线路数据库、公交站点数据库
全国公交线路数据库、公交站点数据库
完整全国公交数据库包含香港除台湾外的33个直辖市、省、特别行政区的203个主要城市的超过16,600多条公交线路数据,数据库不定时更新。数据库包括:公交线路信息、公交车站(来回)、起始时间、票制、票价、距离等数据。并提供数据库二次开发工具。
表:Area(省份/城市)字段说明
ID(数字 Int);Province(省份);City(城市);City2(城市短名称);Pinyin(拼音)
表:BusLine(公交线路)字段说明
ID(数字 Int);AreaID(对应Area表ID);LineCode(公交线路)
表:BusInfo(公交线路信息)字段说明
ID(数字 Uniqueidentifier);BusLineID(对应BusLine表ID Int);StartTime(起点首班车时间 Int);EndTime(起点末班车时间 Int);LastStartTime(终点首班车时间 Int);LastEndTime(终点末班车时间 Int);TimeInfo(首末车时间说明);TicketSystem(票制);Carfare(全程票价[元]);KM(线路长度[公里]);OtherInfo(其他信息);BusInfoIndex(排序 Byte
表:BusStation(公交车站)字段说明
BusInfoID(数字 对应 busInfo表 ID Uniqueidentifier);Station(车站名称);StationIndex(站序 Int
注:表字段类型均为 NVarChar 字符串类型;班车时间为从0点开始的整数分钟。
通过 淘宝网购买全国公交线路数据库 或 直接联系客服人员购买。完整数据库价格:¥2998.00元,¥98.00元/城市(除直辖市),¥498.00元/省(直辖市)。购买多个省份价格面议,购买省以上数据包含一年更新。
全国公交线路数据库二次开发工具包
全国公交线路数据工具包含“公交数据库浏览-编辑工具”和“公交数据库反向车站补齐工具”。使用公交数据库浏览-编辑工具可方便大家对公交数据库数据进行添加、删除和修正。公交线路数据库部分车次来回车站一样,为减少数据库容量只记录单程数据,如开发过程需要使用到反向车站数据,可使用公交数据库反向车站补齐工具处理。此工具均为本站开发的免费绿色软件,不需要安装,使用前请仔细查看说明。
Zip file 开发工具下载:公交线路数据库工具下载
Html file 公交车换乘开发Google搜索:公交换乘算法公交车路线查询系统后台数据库设计-卢春城专栏
Zip file 换乘SQL实例下载:公交车一次换乘 MS SQL 2005 储存过程实例下载
-- 按城市和线路关键词搜索公交线路
SELECT Area.City, BusLine.LineCode
FROM Area INNER JOIN BusLine ON Area.ID = BusLine.AreaID
WHERE ((Area.City = '上海市') AND (BusLine.LineCode Like '%10路%'))
-- 按城市和车站关键词搜索公交线路
SELECT Area.City, BusLine.LineCode, BusStation.Station
FROM ((Area INNER JOIN BusLine ON Area.ID = BusLine.AreaID) 
INNER JOIN BusInfo ON BusLine.ID = BusInfo.BusLineID) 
INNER JOIN BusStation ON BusInfo.ID = BusStation.BusInfoID
WHERE ((Area.City='上海市') AND (BusStation.Station Like '%人民广场%'))
-- 公交一次中转换乘查询(以上海市为例)
-- 首先用以下SQL语句新建“BusView_Shanghai”视图
SELECT  TOP (100) PERCENT BusLine.LineCode AS RouteID,
  BusStation.Station AS StartStation, BusStation_1.Station AS EndStation,
  BusStation_1.StationIndex - BusStation.StationIndex AS StopCount
FROM  BusLine AS BusLine_1 INNER JOIN
  Area AS Area_1 ON BusLine_1.AreaID = Area_1.ID INNER JOIN
  BusInfo AS BusInfo_1 ON BusLine_1.ID = BusInfo_1.BusLineID INNER JOIN
  BusStation AS BusStation_1 ON BusInfo_1.ID = BusStation_1.BusInfoID INNER JOIN
  Area INNER JOIN
  BusLine ON Area.ID = BusLine.AreaID INNER JOIN
  BusInfo ON BusLine.ID = BusInfo.BusLineID INNER JOIN
  BusStation ON BusInfo.ID = BusStation.BusInfoID
  ON BusStation_1.StationIndex > BusStation.StationIndex AND 
  BusInfo_1.ID = BusInfo.ID
WHERE  (Area.City = '上海市') 
/* 
RouteID = 线路,StartStation = 开始站,EndStation = 结束站,StopCount = 经过的站点数
当然也可以使用储存过程,在SQL 储存过程里 Area.City =  @City 可以用参数
注意:请先使用我们提供的工具补全反向车次(SQL Server 请先补全车次再导入数据),
因为原来数据库为了减少数据量,对来回一样车站的车次只记录了单程数据。
*/
-- 然后通过以下是查询语句获得一次中转换乘
Select R1.StartStation AS sStation, R1.RouteID AS [sID], R1.EndStation AS tStation, 
  R2.RouteID AS tID, R2.EndStation AS eStation,R1.StopCount+R2.StopCount AS AllCount
  FROM BusView_Shanghai AS R1 INNER JOIN BusView_Shanghai AS R2
  ON R1.EndStation = R2.StartStation 
WHERE ((R1.StartStation = '起点站')  AND  (R2.EndStation = '终点站'))
/*
sStation = 起点站,sID = 起始车次,
tStation = 中转车站,tID = 中转车次,eStation = 终点站,AllCount = 经过站点数
*/
'VB.net 整数分钟 --> 小时:分种
Public Function Minutes2String(ByVal IntMinutes As Integer) As String
        Dim ts As TimeSpan = New TimeSpan(0, IntMinutes, 0)
        Return ts.Hours.ToString() & ":" & ts.Minutes.ToString()
End Function

'VB.net 小时:分种 --> 整数分钟
Public Function String2Minutes(ByVal H As Integer, ByVal M As Integer) As Integer
        Dim ts As TimeSpan = New TimeSpan(H, M, 0)
        Return CInt(ts.TotalMinutes)
End Function
//C# 整数分钟 --> 小时:分种 
public string Minutes2String(int IntMinutes) 
{ 
    TimeSpan ts = new TimeSpan(0, IntMinutes, 0); 
    return ts.Hours.ToString() + ":" + ts.Minutes.ToString(); 
} 

//C# 小时:分种 --> 整数分钟 
public int String2Minutes(int H, int M) 
{ 
    TimeSpan ts = new TimeSpan(H, M, 0); 
    return (int)ts.TotalMinutes; 
}