wxml
- <view class="container">
- <view class="mapTop">
- <van-tabs active="{{ active }}" color="#2A82E4" bind:change="onChange">
- <view wx:for="{{scenicList}}" wx:key="id">
- <van-tab title="{{item.name}}" />
- </view>
- </van-tabs>
- <!-- 显示地图 -->
- <view class="view" style="position: absolute;width: 100%;height: 80%;bottom: 20%">
- <map id="myMap"
- style="width: 100%; height: 100vh;"
- longitude="{{longitude}}"
- latitude="{{latitude}}"
- scale="16"
- polyline="{{polyline}}"
- show-location="true"
- markers="{{markers}}">
- </map>
- </view>
- </view>
- </view>
复制代码 wxss
- /* pages/atlas/index.wxss */
- .container {
- background-color: #ffffff;
- padding-bottom: 10px;
- }
- /* 顶部导航栏 */
- .top {
- width: 100%;
- height: 90px;
- color: #636363;
- display: flex;
- top: 0;
- position: fixed;
- font-size: 14px;
- text-align: center;
- align-items: center;
- z-index: 5;
- background-color: #ffffff;
- border-bottom: 1px #e1e1e1 solid;
- }
- .top text {
- position: absolute;
- bottom: 10px;
- }
- .left {
- width: 65px;
- height: 25px;
- margin-left: 10px;
- display: flex;
- justify-content: space-around;
- align-items: center;
- border: 1px #d4d4d4 solid;
- border-radius: 20px;
- position: absolute;
- bottom: 10px;
- }
- .left image {
- width: 15px;
- height: 15px;
- }
- .return {
- transform: rotate(180deg);
- }
- .line {
- width: 1px;
- height: 60%;
- background-color: #d7c3ac;
- }
- #house {
- width: 20px;
- height: 20px;
- }
- .mapTop {
- width: 100%;
- }
- .mapTop-block {
- width: 15%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- font-size: 0.9rem;
- background-color: brown;
- }
- .mapTop-line {
- width: 80%;
- height: 2px;
- margin-top: 5px;
- background-color: chartreuse;
- }
复制代码 js
- var QQMapWX = require('./qqmap-wx-jssdk');
- // 实例化API核心类
- var qqmapsdk = new QQMapWX({
- key: 'HLBBZ-UXNCV-OUOPC-5AT7V-Y3UG6-UYB5U' // 必填
- });
- Page({
- // 返回上一页
- returnClick() {
- wx.navigateBack();
- },
- targetHouse() {
- wx.switchTab({
- url: '/pages/goods-list/index',
- });
- },
- data: {
- srcLat: '35.280000', // 起点纬度(字符串)
- srcLng: '113.980000', // 起点经度(字符串)
- strategyArrlat: '34.52', // 终点纬度(字符串)
- strategyArrlng: '110.07', // 终点经度(字符串)
- polyline: [], // 用于存储路线的多段路径
- markers: [] // 用于存储起点和终点的标记
- },
- onLoad() {
- var _this = this;
- // 将坐标转换为数字类型
- var srcLat = parseFloat(_this.data.srcLat);
- var srcLng = parseFloat(_this.data.srcLng);
- var strategyArrlat = parseFloat(_this.data.strategyArrlat);
- var strategyArrlng = parseFloat(_this.data.strategyArrlng);
- // 请求页面数据
- wx.login({
- success: (res) => {
- if (res.code) {
- // 请求自己的后台服务器,传递 code 获取 session_key 和 openid
- // 请求景区分类列表
- wx.request({
- url: 'https://jingqu.kuxia.top/app/maps/index', // 替换为你自己的服务器地址
- method: 'POST',
- data: {
- scenic_id: 3
- },
- success: (response) => {
- if (response.data.code == 1) {
- console.log('景区分类列表', response.data.data);
- this.setData({
- scenicList: response.data.data // 更新数据
- });
- }
- },
- fail: (err) => {
- console.error('请求失败', err);
- }
- });
- }
- }
- });
- // 调用距离计算接口
- qqmapsdk.direction({
- mode: 'driving',
- from: {
- latitude: srcLat,
- longitude: srcLng
- },
- to: {
- latitude: strategyArrlat,
- longitude: strategyArrlng
- },
- success: function (res) {
- var ret = res;
- var coors = ret.result.routes[0].polyline,
- pl = [];
- var kr = 1000000;
- for (var i = 2; i < coors.length; i++) {
- coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
- }
- for (var i = 0; i < coors.length; i += 2) {
- pl.push({
- latitude: coors[i],
- longitude: coors[i + 1]
- });
- }
- // 设置polyline属性,将路线显示出来
- _this.setData({
- latitude: pl[0].latitude,
- longitude: pl[0].longitude,
- polyline: [{
- points: pl,
- color: '#2A82E4',
- width: 5
- }],
- markers: [{
- id: 1,
- latitude: srcLat,
- longitude: srcLng,
- iconPath: '/images/start.png', // 起点图标路径
- width: 30,
- height: 30
- }, {
- id: 2,
- latitude: strategyArrlat,
- longitude: strategyArrlng,
- iconPath: '/images/end.png', // 终点图标路径
- width: 30,
- height: 30
- }]
- });
- },
- fail: function (error) {
- console.error(error);
- }
- });
- }
- });
复制代码 引入文件
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |