IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序使用地图map (详细) -> 正文阅读

[移动开发]微信小程序使用地图map (详细)

直接看代码:
可直接赋值实现,图标可根据自己需要更改
在这里插入图片描述

   <view class="top">
        <map wx:if="{{markersStatus}}" class="map" id="myMap" scale="{{scale}}" longitude="{{longitude}}" latitude="{{latitude}}" markers="{{datatlist}}" bindregionchange="mapChange"  show-location='true'>
        </map>
        // 这个是上图灰色图标  点击可回到初始位置
        <view class="nav-panel">
            <image class="icon-location" bindtap="getCenterLocation" src="https://applets.jinchehui.com/static/images/icon_location_2.svg" bindtap="getCenterLocation"></image>
        </view>
    </view>
    <van-dialog id="van-dialog" />

小程序地理定位qqmap-wx-jssdk.js:qqmap-wx-jssdk.js
点击可进行下载里边的 :下载微信小程序JavaScriptSDK


var QQMapWX = require('../../utils/qqmap-wx-jssdk.min.js'); //自行根据文件放置
var qqmapsdk;
qqmapsdk = new QQMapWX({
    key: '申请的key'
});
import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
Page({

    /**
     * 页面的初始数据
     */
    data: {
        lat: '', //纬度
        lng: '', //经度
        latitude: '',
        longitude: '',
        keyword: '',
        scale: 16, //5-18
        markersStatus: false,
        datatlist: {}
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.getLocation();
        this.bindAuthLocation(); //授权位置
    },

    //授权位置按钮
    bindAuthLocation() {
        //获取授权结果查看是否已授权位置
        wx.getSetting({
            success: (res) => {
                if (res.authSetting['scope.userLocation'] == undefined && !res.authSetting['scope.userLocation']) //未授权位置(首次进来页面)
                    this.getLocation(); //获取当前位置信息
                else if (res.authSetting['scope.userLocation'] === false) //未授权位置(点击官方授权弹框取消按钮后)
                    Dialog.confirm({
                        title: '提示',
                        message: '需要获取你的地理位置,你的位置信息将用于位置显示',
                    })
                    .then(() => {
                        this.bindConfirmLocation()
                        // on confirm
                    })
                    .catch(() => {
                        // on cancel
                    });
                else //已授权
                    this.getLocation(); //获取当前位置信息
            }
        })
    },
    //定位授权框确认按钮
    bindConfirmLocation(e) {
        //打开设置页面进行授权设置
        wx.openSetting({
            success: (res) => {
                if (res.authSetting['scope.userLocation']) {
                    //获取当前位置信息
                    this.getLocation(); //获取当前位置信息
                }
            }
        });
    },
    //获取位置
    getLocation() {
        this.mapCtx = wx.createMapContext('myMap')
        // 调用接口
        wx.getLocation({
            type: 'gcj02',
            success: (res) => {
                // console.log("res", res)
                if (res) {
                    this.data.lat = res.latitude;
                    this.data.lng = res.longitude;
                    this.setData({
                        latitude: this.data.lat,
                        longitude: this.data.lng,
                        markersStatus: true
                    })
                } else {
                    wx.showToast({
                        title: '定位失败',
                        icon: 'none',
                        duration: 1500
                    })
                }
                qqmapsdk.reverseGeocoder({
                    success: (res) => {
                        console.log('=============', res)
                    },
                });
                this.getFood(res.longitude, res.latitude)

                this.setData({
                    markersStatus: true
                })
            },
            fail(err) {
                wx.hideLoading({});
                console.log("asafasfs", err)
                // wx.showToast({
                //     title: '定位失败',
                //     icon: 'none',
                //     duration: 1500
                // })
                setTimeout(function () {
                    // wx.navigateBack({
                    //     delta: 1
                    // })
                }, 1500)
            }
        })
    },
    //点击回到初始位置
    getCenterLocation: function () {
        var that = this;
        that.mapCtx.moveToLocation()
    },
    //滑动获取周围的店铺
    mapChange(e) {
        if (e.type === 'end') {
            this.mapCtx.getCenterLocation({
                success: res => {
                    console.log(res);
                    this.getFood(res.longitude, res.latitude)
                }
            })
        }
    },
    //搜索附近的店铺
    getFood(longitude, latitude) {
        qqmapsdk.search({
            location: {
                latitude: latitude,
                longitude: longitude,
            },
            keyword: '',
            success: (res) => {
                console.log('地理位置:', res);
                var mark = []
                for (let i in res.data) {
                    mark.push({
                        iconPath: '/images/adr.png', //周边的图标    根据自己需要换
                        alpha: 1,
                        title: res.data[i].title,
                        id: Number(i),
                        longitude: res.data[i].location.lng,
                        latitude: res.data[i].location.lat,
                        width: parseInt(31.91) + 'px',//设置图标的大小
                        height: parseInt(31.91) + 'px',
                    })
                }
                mark.push({
                    iconPath: '/images/address.png', //中心的图标     根据自己需要换
                    id: Number(res.data.length),
                    alpha: 1,
                    longitude: longitude,
                    latitude: latitude,
                    width: parseInt(43.87) + 'px',
                    height: parseInt(43.87) + 'px',
                })
                this.setData({
                    datatlist: mark,
                })
            },
            fail: function (res) {
                console.log(res);
            },
            complete: function (res) {
                // console.log(res);
            }
        });
    },
})

浅记一下!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:16:33  更:2022-04-29 12:16:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 23:51:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码