开放、分享、自由、中立、公平网吧论坛公众号APP(送下载币任务) 微信公众号

天下网吧论坛

 找回密码
 注册账号

QQ登录

只需一步,快速开始

用微信登录

扫一扫,用微信登录

查看: 3834|回复: 0
收起左侧

[经验分享] 微信小程序地图组件实现搜索关键字并标记渲染

[复制链接]
发表于 2021-4-25 11:21:02 | 显示全部楼层 |阅读模式 发布于:福建省福州市鼓楼区 联通
说说原理,首先是要以当前坐标指定关键字(比如「酒店」)搜索周边的所有酒店,得到相关的坐标点数组,然后在微信小程序的map组件里标记渲染出来完成需求,这里说到的指定坐标搜索周边地标的功能需要用到腾讯地图SDK(这里推荐用腾讯生态内的产品,对接比较方便).
腾讯地图SDK相关网站:微信小程序JavaScript SDK | 腾讯位置服务
https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodSearch

wxml里面,map组件相关代码:
  1. <map id="myMap" class="map-body" latitude="{{latitude}}" longitude="{{longitude}}" markers="{{markers}}" include-points="{{includePoints}}" show-compass="{{true}}" show-scale="{{true}}" bindmarkertap="markertap" bindlabeltap="markertap" bindcallouttap="markertap" bindregionchange="regionChange" show-location enable-3D></map>
复制代码

js里面相关代码:
  1. /* 引入腾讯地图SDK */
  2. // Page外层引入SDK核心类
  3. var QQMapWX = require('../../libs/qqmap-wx-jssdk.min.js');
  4. var qqmapsdk;

  5. //onLoad里面创建腾讯地图组件,实例化API核心类
  6. qqmapsdk = new QQMapWX({
  7.         key: '腾讯地图申请开通后的key'
  8. });

  9. /*关键代码 doSearch*/
  10. doSearch: function (e) {
  11.                 let that = this;
  12.                 let markers = [];
  13.                 let includePoints = [];
  14.                 that.setData({ searchword: that.data.searchword2 }, res => {
  15.                         qqmapsdk.search({/* 搜索酒店 */
  16.                                 keyword: that.data.searchword2,
  17.                                 success: function (res) {
  18.                                         for (let i = 0; i < res.data.length; i++) {
  19.                                                 let item = {};
  20.                                                 item.id = res.data[i].id;
  21.                                                 item.latitude = res.data[i].location.lat;
  22.                                                 item.longitude = res.data[i].location.lng;
  23.                                                 item.name = res.data[i].title;
  24.                                                 item.callout = {
  25.                                                         content: res.data[i].title,
  26.                                                         bgColor: "#2e2f31",
  27.                                                         display: "ALWAYS",
  28.                                                         color: "#ffffff",
  29.                                                         fontSize: '28rpx',
  30.                                                         borderRadius: '20rpx',
  31.                                                         textAlign: 'center',
  32.                                                         anchorY: -30,
  33.                                                         padding: 10
  34.                                                 };
  35.                                                 item.address = res.data[i].address;
  36.                                                 markers.push(item);
  37.                                                 let itemPoint = {};
  38.                                                 itemPoint.latitude = item.latitude;
  39.                                                 itemPoint.longitude = item.longitude;
  40.                                                 includePoints.push(itemPoint);
  41.                                         }
  42.                                         that.setData({
  43.                                                 markers,
  44.                                                 includePoints,
  45.                                         });
  46.                                 }
  47.                         });
  48.                 })
  49.         },
复制代码

赶紧来设置你的签名->玩转天下网吧论坛签名

您需要登录后才可以回帖 登录 | 注册账号   扫一扫,用微信登录

本版积分规则

下载天下网吧手机APP,直接一键登录
您尚未登录,请登陆后浏览更精彩内容!
 注册账号
找回密码

手机版|纯文字版|联系我们|免责声明|网吧论坛 ( __ICP号__ )

GMT+8, 2024-4-17 06:37 , Processed in 2.495936 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表