分享一个查询公交路线的模块
因为公司业务需要,昨天开发了这个小程序.支持以下城市的公交路线查询,支持跨市查询.
支持的城市:
北京广州上海深圳佛山东莞
香港惠州珠海中山江门天津
杭州武汉长沙重庆成都苏州
南京大连清远肇庆云浮阳江
茂名湛江韶关梅州潮州汕头
河源汕尾济南揭阳
DLL下载地址:http://http://lib.ldong.net/jl/getBus.rar
DLL文件名:getbus.dll
组件和类名:hslPlugins.cbus
有以下属性和方法
SearchRoutins:执行路线查询.返回值:查询执行状态.返回0表示出错了.返回1表示有多个起点或终点,需要进一步选择起点或终点,在RoutinString中将返回以||分隔的待选的起点和终点列表.在Routins数组中将返回起点和终点列表.返回2则表示查询到了交通路线.RoutinString将返回各种路线,以||分隔.越排在前表示交通越快.Routins数组将返回路线列表.StartCity:起始城市,默认是我所在的城市,东莞.DestinationCity:终点城市,默认是我所在的城市,东莞.StartStation:起点站DestinationStation:终点站Timeout:设置查询超时.单位为秒.默认是3秒.Routins:返回路线数组.RoutinsString:返回路线文字,以||分隔.ErrorString:返回错误描述.
SQL调用方法:--Split函数 alter FUNCTION [dbo].Split (@SourceStr varchar(max),@Delimiter VARCHAR(20))--源字符串 RETURNS @table table(list varchar(2000) ) AS BEGIN SELECT @SourceStr=REPLACE(@SourceStr, @Delimiter,'$') if charindex('$',@sourcestr)>0 begin declare @i int declare @n int set @i=1 while charindex('$',@sourcestr,@i)>0 begin set @n=charindex('$',@sourcestr,@i) insert into @table values(substring(@sourcestr,@i, @n-@i) ) set @i=@n+1 end insert into @table values(substring(@sourcestr,@i,len(@sourcestr)-@i+1)) end else insert into @table values(@sourcestr) delete from @table where isnull(list,'') = '' return END --交通查询存储过程Create PROC sp_SearchRoutin @StartCity VARCHAR(50)='东莞', @StartStation VARCHAR(200), @DestinationCity VARCHAR(50)='东莞', @DestinationStation VARCHAR(200), @Routins VARCHAR(5000)='' OUTPUT, @status INT=0 OUTPUT, @ErrorString VARCHAR(200)='' outputAS BEGIN DECLARE @hInstance INT,@ret INT,@retstr VARCHAR(2000),@source varchar(200),@description varchar(200) EXEC @ret=sp_oacreate 'hslPlugins.cbus',@hInstance OUTPUT print @ret EXEC @ret = sp_OAGetErrorInfo NULL, @source OUT, @description OUT --print @description --EXEC sp_oadestroy @hInstance EXEC @ret=sp_oasetproperty @hInstance,'StartCity',@StartCity EXEC @ret=sp_oasetproperty @hInstance,'DestinationCity',@DestinationCity EXEC @ret=sp_oasetproperty @hInstance,'StartStation',@StartStation EXEC @ret=sp_oasetproperty @hInstance,'DestinationStation',@DestinationStation EXEC @ret=sp_oamethod @hInstance,'SearchRoutins',@status OUT EXEC @ret =sp_oagetproperty @hInstance,'RoutinsString',@Routins OUT EXEC sp_oadestroy @hInstance SELECT List '乘车路线' from SPLIT(@Routins,'||') return end--示例:declare @s1 varchar(2000),@s2 int,@s3 varchar(2000)exec sp_SearchRoutin '东莞','行政中心西','东莞','火炼树综合市场',@s1 output,@s2 output,@s3 outputprint @s1print @s2 1.从行政中心西站乘坐9路(坐2站)、C2路(坐2站)到新世纪豪园西站下。走约520米到火炼树综合市场 2.乘坐出租车,共行驶2.8公里,费用约11元。晚上23:00点以后,费用约12元。注意:信息仅供参考,不可作为支付依据.本费用中不含过路费和过桥费,塞车等因素可能使费用显著增加。 3.从行政中心西站走约730米到电信局站(南城)乘坐小巴x5线(坐3站)到火炼树村站下。往前走约230米到火炼树综合市场 4.从行政中心西站乘坐9路(坐1站)、C2路(坐1站)到会展中心站(南城)转乘46路(坐1站)、小巴x5线(坐2站)到火炼树村站下。往前走约230米到火炼树综合市场 5.从行政中心西站走约730米到电信局站(南城)乘坐小巴x13线(坐2站)到新世纪豪园西站下。走约520米到火炼树综合市场 6.从行政中心西站乘坐8路(坐1站)到体育馆东站(莞城)走到马路对面的体育馆东站(莞城)转乘46路(坐3站)到火炼树村站下。往前走约230米到火炼树综合市场 7.从行政中心西站乘坐47路(坐1站)、8路(坐1站)、59路(坐1站)到电信局站(南城)走到马路对面的电信局站(南城)转乘小巴x5线(坐3站)到火炼树村站下。往前走约230米到火炼树综合市场 8.从行政中心西站乘坐9路(坐4站)到景湖春天站(南城)走到马路对面的景湖春天站(南城)转乘18路(坐1站)到火炼树村站下。过马路往左走约220米到火炼树综合市场 9.从行政中心西站乘坐26路(坐1站)到电信局总站(南城)下,过马路往右走到电信局站(南城)转乘小巴x5线(坐3站)到火炼树村站下。往前走约230米到火炼树综合市场
[解决办法]
lz解禁了
[解决办法]