首页 > 编程语言 >#yyds干货盘点#【愚公系列】2022年12月 微信小程序-项目篇(公交查询)-05线路查询

#yyds干货盘点#【愚公系列】2022年12月 微信小程序-项目篇(公交查询)-05线路查询

时间:2022-12-04 20:31:23浏览次数:40  
标签:yyds 12 string 微信 lines API var station line

前言

1.相关API

接口地址:https://api.jisuapi.com/transit/line 返回格式:JSON,JSONP 请求方法:GET POST 请求示例:

https://api.jisuapi.com/transit/line?cityid=382&transitno=86&appkey=yourappkey

请求参数:

参数名称 类型 必填 说明
city string 城市 cityid city任选其一
cityid int 城市ID
transitno string 车次 查询地铁加地铁2个字

返回参数:

参数名称 类型 说明
transitno string 车次
startstation string 始发站
endstation string 终点站
starttime string 最早发车时间
endtime string 最晚发车时间
price string 票价
maxprice string 最高票价
sequenceno string 顺序
station string 站点
lat string 纬度 百度坐标系
lng string 经度
buscompany string 所属公交公司
timetable string 排班表
subway string 地铁换乘

API错误码:

代号 说明
201 公交车次为空
202 城市ID为空
203 起点为空
204 终点为空
205 城市为空
206 公交站点为空
207 地址为空
210 没有信息

系统错误码:

代号 说明
101 APPKEY为空或不存在
102 APPKEY已过期
103 APPKEY无请求此数据权限
104 请求超过次数限制
105 IP被禁止
106 IP请求超过限制
107 接口维护中
108 接口已停用

2.相关案例

请求API:https://api.jisuapi.com/transit/line?cityid=382&transitno=86&appkey=你的密钥

返回JSON:

{
    "status": 0,
    "msg": "ok",
    "result": [
        {
            "transitno": "86路",
            "startstation": "西溪竞舟苑",
            "endstation": "景芳小区",
            "starttime": "05:45",
            "endtime": "21:45",
            "price": "2",
            "maxprice": "2.00",
            "list": [
                {
                    "sequenceno": 1,
                    "station": "西溪竞舟苑",
                    "lat": "30.28806",
                    "lng": "120.06484"
                },                
                {
                    "sequenceno": 22,
                    "station": "和平广场",
                    "lat": "30.29524",
                    "lng": "120.18258"
                },
                {
                    "sequenceno": 25,
                    "station": "濮家新村",
                    "lat": "30.29059",
                    "lng": "120.20558"
                },                
                {
                    "sequenceno": 29,
                    "station": "景芳小区",
                    "lat": "30.27631",
                    "lng": "120.21277"
                }
            ]
        },
        {
            "transitno": "86路",
            "startstation": "景芳小区",
            "endstation": "西溪竞舟苑",
            "starttime": "05:45",
            "endtime": "21:45",
            "price": "2",
            "maxprice": "2.00",
            "list": [
                {
                    "sequenceno": 1,
                    "station": "景芳小区",
                    "lat": "30.27628",
                    "lng": "120.21274"
                },
                {
                    "sequenceno": 2,
                    "station": "濮家新村",
                    "lat": "30.28873",
                    "lng": "120.20592"
                },                
                {
                    "sequenceno": 25,
                    "station": "西溪竞舟苑",
                    "lat": "30.28807",
                    "lng": "120.06484"
                }
            ]
        }
    ]
}

一、站点搜索

1.wxml

<!--pages/search/search.wxml-->
<view class='all'>
  <view class='top'>
    <view class='topsearch'>
      <input type='text' placeholder='请搜索线路' bindinput="setLine" focus='true'></input>
    </view>
    <view class='searchbtn'>
      <image src="../../imgs/search-selected.png" bindtap='search'></image>
    </view>
  </view>
  <view class='mdle'>
    <view class='middle' wx:for="{{lines}}" wx:key="" wx:for-index="idx1" wx:for-item="line">
      <view bindtap='jumpLineDetail' data-line='{{line.transitno}}'>
        <view class='middletop'>{{line.transitno}}</view>
        <view class='middlebottom'>
          <view class='middlebottom1'>{{line.startstation}}</view>
          <view class='middlebottom2'>
            <image src="../../imgs/doublearrow.png"></image>
          </view>
          <view class='middlebottom1'>{{line.endstation}}</view>
        </view>
      </view>
    </view>
  </view>
</view>

2.js

// pages/search/search.js
var app = getApp()
var config = require('../../libs/config.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    city: "",//当前城市
    line: "",//用户输入的线路
    lines: [] //搜索得到的线路集合
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onl oad: function (options) {
    var _this = this
    _this.setData({
      city: options.city,
    })
  },

  getLine() {
    var _this = this
    app.showLoading("搜索数据中")
    wx.request({
      url: 'http://api.jisuapi.com/transit/line', 
      data: {
        appkey: config.Config.busappkey,
        city: _this.data.city,
        transitno	: _this.data.line
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        console.log(res)
        var lines = res.data.result
        var temp = []
        var linesTemp = []
        if (lines.length > 0) {
          for (var i = 0; i < lines.length; i++) {
            if (temp.indexOf(lines[i].transitno) == -1) {
              lines[i].startstation = lines[i].list[0].station;
              lines[i].endstation = lines[i].list[lines[i].list.length - 1].station
              temp.push(lines[i].transitno)
              linesTemp.push(lines[i]);
            }
          }
        }
        _this.setData({
          lines: linesTemp
        })
        console.log("搜索数据", _this.data.lines)
      },
      fail: function (res) {
        console.log(res);
      },
      complete: function (res) {
        app.hideLoading()
      }
    })
  },
  setLine(e) {
    var _this = this
    var value = e.detail.value
    _this.setData({
      line: value
    })
  },
  search(e) {
    this.getLine()
  },
  jumpLineDetail(e) {
    var _this = this
    var line = e.currentTarget.dataset.line
    var station = e.currentTarget.dataset.station || ''
    var city = _this.data.city
    wx.navigateTo({
      url: '../lineDetail/lineDetail?line=' + line + '&city=' + city + '&station=' + station
    })
  },
})

3.效果

在这里插入图片描述

总结

本篇获取周边站址的API是第三方API,第三方API其实在应用中很常见比如:车牌识别、图片搜索、短信接口、语音识别、语音合成、天气数据、地铁查询、实时物流、飞机查询等等。

相关地图API接口:

  • 百度地图- 百度地图提供了Android, iOS版本的SDK和JavaScript API,可进行定位、地图、数据、出行、鹰眼轨迹和分析服务。
  • 高德地图- 高德地图提供了JavaScript和web服务API,Android和iOS SDK,支持地图,定位,搜索,路线规划,导航和室内地图等。
  • 腾讯地图- 腾讯地图提供了JavaScript API,Android和iOS SDK,支持定位,地图,地点搜索,路线和导航等。
  • 天地图- 天地图提供了H5 API和JavaScript API等web API,同时提供了Android和iOS SDK,支持基础地图服务,图层管理,地图覆盖物,地图工具,地名搜索和出行规划服务。
  • 图吧地图- 图吧提供了JavaScript和Flash API,Android和iOS SDK,支持定位,地址解析,位置标注,位置截图,路线规划,周边查询,兴趣点搜索和在线导航。

标签:yyds,12,string,微信,lines,API,var,station,line
From: https://blog.51cto.com/u_15437432/5910053

相关文章