前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2022年04月 微信小程序-项目篇(公交查询)-06站点查询

【愚公系列】2022年04月 微信小程序-项目篇(公交查询)-06站点查询

作者头像
愚公搬代码
发布于 2022-04-30 01:16:22
发布于 2022-04-30 01:16:22
62800
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

前言

1.相关API

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://api.jisuapi.com/transit/station?cityid=113&station=西溪竞舟苑&appkey=yourappkey

请求参数:

参数名称

类型

必填

说明

city

string

城市 cityid city任选其一

cityid

int

城市ID

station

string

站点名称

返回参数:

参数名称

类型

说明

transitno

string

线路名称

startstation

string

起点站

endstation

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/station?cityid=113&station=西溪竞舟苑&appkey=你的密钥

返回JSON:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "status": 0,
    "msg": "ok",
    "result": [
        {
            "transitno": "86路",
            "startstation": "景芳小区",
            "endstation": "西溪竞舟苑"
        },
        {
            "transitno": "118路",
            "startstation": "西溪蒹葭苑",
            "endstation": "小车桥"
        },
        {
            "transitno": "860路",
            "startstation": "西溪竞舟苑",
            "endstation": "池华街公交站"
        },        
        {
            "transitno": "264路高峰线",
            "startstation": "西溪竞舟苑",
            "endstation": "焦家村公交中心站"
        }
    ]
}

一、站点搜索

1.wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/linesShow/linesShow.wxml-->
<view class='all'>
  <view class="lispan" wx:for="{{lines}}" wx:key="" wx:for-index="idx1" wx:for-item="line">
    <view bindtap='jumpLineDetail' data-line='{{line.transitno}}'>
      <view class='q1'>
        <view class='q11'>
          <image src='../../imgs/bus.png' />
        </view>
        <view class='q12'>{{line.transitno?line.transitno:'未知'}}</view>
      </view>
      <view class='q2'>
        <view class='q21'>
          <view class='q211'>{{line.startstation?line.startstation:'未知'}}</view>
          <view class='q212'>
            <image src="../../imgs/doublearrow.png" />
          </view>
          <view class='q213'>{{line.endstation?line.endstation:'未知'}}</view>
        </view>
        <view class='q22'>
          <view class='q221'>
            <view class='q2211'>:{{line.starttime?line.starttime:'未知'}}</view>
            <view class='q2212'>:{{line.endtime?line.endtime:'未知'}}</view>
          </view>
          <view class='q222'>
            <view class='q2221'>{{line.price?line.price:'未知'}}</view>
            <view class='q2222'>¥</view>
          </view>
        </view>
      </view>
    </view>
  </view>
</view>

2.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/linesShow/linesShow.js
var config = require('../../libs/config.js');
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    city: "",
    station: "",
    lines: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
    var _this = this
    _this.setData({
      city: options.city,
      station: options.station
    })
    wx.setNavigationBarTitle({
      title: _this.data.station
    })
    _this.getStationList()
  },

  
  getStationList() {
    var _this = this
    app.showLoading("拉取路线列表")
    // 调用接口
    wx.request({
      url: 'http://api.jisuapi.com/transit/station', //仅为示例,并非真实的接口地址
      data: {
        appkey: config.Config.busappkey,
        city: _this.data.city,
        station: _this.data.station
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        console.log("拉取线路中", res);
        var lines = res.data.result
        var transitnos = []
        var linestemp = []
        for (var i = 0; i < lines.length; i++) {
          if (transitnos.indexOf(lines[i].transitno) == -1) {
            transitnos.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()
        // console.log(res);
      }
    })
  },
  jumpLineDetail(e) {
    var _this = this
    var line = e.currentTarget.dataset.line
    var city = _this.data.city
    var station = _this.data.station
    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,支持定位,地址解析,位置标注,位置截图,路线规划,周边查询,兴趣点搜索和在线导航。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/04/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 1.相关API
    • 2.相关案例
  • 一、站点搜索
    • 1.wxml
    • 2.js
    • 3.效果
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档