taro开发小程序使用地图服务:微信+腾讯地图
Author:zhoulujun Date:
小程序的地图服务,看taro:https://docs.taro.zone/docs/apis/location/chooseLocation/
chooseLocation api功能是依赖于腾讯位置服务,所以需要使用 api 密钥。如果您没有,可以前往腾讯位置服务开发者控制台进行申请。
授权小程序获取用户地理位置
使用小程序,需要在/src/app.config.js添加配置
export default defineAppConfig({ //加入以下的代码 "permission":{ "scope.userLocation":{ "desc": "获取地理位置信息的用途描述" } } })
再小程序管理后台,也需要申请一下。设置微信小程序安全域名等,这里不赘述了
再页面中,初始化地图
import React, { useState } from 'react'; import { Map, View, Text } from '@tarojs/components'; import './index.scss'; import Taro, { useReady } from '@tarojs/taro'; import GlobalStore from '@/hooks/GlobalStore'; function Detail() { const { tripDestination } = GlobalStore.useContainer(); const [date, setDate] = useState([]); let mapCtx; // <map id="map" longitude="{{longitude}}" latitude="{{latitude}}"></map> // 经纬度 const [gis, setGis] = React.useState<[number, number]>([114.052622, 22.55242]); const [list, setList] = useState<TripData[]>([]); const [active, setActive] = useState(2); const [key, setKey] = useState(0); function tap(e) { console.log('onClick={tap}') console.log(e) const item = list[active] if (!item?.record) { return } debugger; item.record.push({ title: '乌鲁木齐', latitude: e.detail.latitude, longitude: e.detail.longitude, date: item.date, }) list[active] = item; setList(list) setKey(+new Date()) } function tapMarker(e) { console.log('onMarkerTap={tapMarker}') console.log(e) } return ( <View className='p-normal full-page bg-gray'> <Map id='map' style={{ height: '40vh', width: '100%' }} latitude={gis[1]} longitude={gis[0]} scale={13} show-location={true} onTap={tap} onMarkerTap={tapMarker} /> </View> ); } export default Detail;
taro 引入腾讯地图小程序插件
const latitude = res.latitude; const longitude = res.longitude; var QQMapWX = require("../../common/lib/qqmap-wx-jssdk");//加载微信小程序JavaScriptSDK var qqmapsdk = new QQMapWX({ key: "XXXX-XXXX-XXX-XXXX-XXXXX-XXXX" // 必填 填写刚刚在腾讯地图API平台申请的开发者密钥 }); console.log("888", latitude, longitude);//测试 输出当前位置到的经纬度 qqmapsdk.reverseGeocoder({//逆地址解析 获取当前城市信息 location: {//经纬度 latitude: latitude, longitude: longitude }, success: function(res) {//请求成功回调函数 console.log("666f", res);//包含地址信息的返回值 }, fail: function(a) {//请求失败回调函数 console.log(a); } }); }
qqmap-wx-jssdk.min.js是腾讯位置服务的sdk
参考文章:
记一次taro开发小程序,利用腾讯地图SDK进行逆地址解析获取城市位置信息 https://blog.csdn.net/qq_46826837/article/details/123038092
taro 兼容支付宝小程序和微信小程序<四> -- 腾讯地图和高德地图api https://blog.csdn.net/hanchengmei/article/details/126778117
Taro微信小程序-地图 https://www.jianshu.com/p/b8972e04b28d
转载本站文章《taro开发小程序使用地图服务:微信+腾讯地图》,
请注明出处:https://www.zhoulujun.cn/html/DB/NotOnlySQL/8973.html