小程序景区地图覆盖和标记点Demo

wxml

<!--pages/map/index.wxml-->
<!--请到真机预览查看,开发者工具无法显示背景图-->
<map
 id="map"
 latitude="{{latitude}}"
 longitude="{{longitude}}"
 markers="{{markers}}"
 show-location
 bindmarkertap="onMarkerTap"
 bindcallouttap="onCalloutTap"
 scale="{{scale}}"
 style="width: 100%;height:100vh;"
>
</map>

js

// pages/map/index.js
Page({

  /**
   * 页面的初始数据
   */
  data:{
    latitude: 31.19565618918707,
    longitude: 121.34083569986228,
    scale: 12,
    markers: [//标记点
      {
        callout: {
          content: "上海市动物园",
          color: '#000000',
          fontSize: 14,
          borderRadius: 10,
          bgColor: '#ffffff',
          padding: 5,
          display: 'BYCLICK',
        },
        width: 34,
        height: 34,
        id: 0,
        latitude: 31.192081979746106,
        longitude: 121.36423424266354,
        iconPath: "/assets/type1.png",
        'aria-id': 0,
        'aria-name': "上海市动物园",
        'aria-type': "type1",
      },
      {
        callout: {
          content: "虹桥机场",
          color: '#000000',
          fontSize: 14,
          borderRadius: 10,
          bgColor: '#ffffff',
          padding: 5,
          display: 'BYCLICK',
        },
        width: 38,
        height: 38,
        id: 1,
        latitude: 31.19565618918707,
        longitude: 121.34083569986228,
        iconPath: "/assets/type3.png",
        'aria-id': 1,
        'aria-name': "虹桥机场",
        'aria-type': "type2",
      }
    ],
   },
   onLoad () {
    this.mapCtx = wx.createMapContext('map');
    this.mapCtx.addGroundOverlay({
          id: 0,
          src: "https://jquee-dev.oss-cn-beijing.aliyuncs.com/hwxq/mapDraw2.png",//覆盖背景
          bounds: {
            southwest: { //西南角
              latitude: 31.177728,
              longitude: 121.331381,
            },
            northeast: { //东北角
              latitude: 31.243749,
              longitude: 121.367216,
            }
          },
          opacity:1,
          success(res){
            console.log('wp', res)
          },
          fail(err){
            console.log('wperr', err)
          }
        })
   },

   onMarkerTap(e) {//点击标记点时触发
    const markerId = e.markerId;
    const marker = this.data.markers.find(m => m.id === markerId);
    if (marker) {
      // 切换标注的显示
      if (marker.callout.display === 'BYCLICK') {
        marker.callout.display = 'ALWAYS';
      } else {
        marker.callout.display = 'BYCLICK';
      }
      this.setData({
        markers: this.data.markers
      });
      this.mapCtx.moveToLocation({
        latitude: marker.latitude,
        longitude: marker.longitude
      });

      // this.setData({
      //   scale: 16
      // });
    }
  },
  
  onCalloutTap(e){ //点击标记点对应的气泡时触发
    const markerId = e.markerId;
    const marker = this.data.markers.find(m => m.id === markerId);
    if (marker) {
      wx.navigateTo({
        url: '/pages/article/artlook/detail/index?id=' + marker['aria-id'] + '&name=' + marker['aria-name'],
      });
    }
  },


 
})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序是一种基于微信平台的应用程序,可以在微信内部使用,具有轻量级、便捷、快速启动等特小程序可以调用腾讯地图demo来实现各种地图功能。 首先,小程序需要通过腾讯地图的开放接口获取访问权限。在小程序的后台管理界面上,开发者需要申请腾讯地图API的密钥,在腾讯地图开放平台上创建应用,获取到对应的AppKey。 然后,在小程序中引入腾讯地图的JavaScript SDK,可以通过以下方式: ``` // 在小程序的页面中引入腾讯地图SDK <script src="https://map.qq.com/api/js?v=2.exp&key=YOUR_APP_KEY"></script> ``` 接下来,可以使用腾讯地图提供的API来实现各种功能,如地图展示、地搜索、地标记等。 例如,可以在小程序的页面中添加一个地图容器: ``` <!--在小程序的wxml文件中添加地图容器--> <map id="myMap" style="width: 100%; height: 300px;"></map> ``` 然后,在小程序的页面对应的JavaScript文件中,通过腾讯地图的API初始化地图: ``` // 在小程序的js文件中初始化地图 Page({ onReady: function() { var map = new qq.maps.Map(document.getElementById('myMap'), { center: new qq.maps.LatLng(39.916527, 116.397128), // 地图中心坐标 zoom: 13 // 地图缩放级别 }); } }); ``` 以上代码会在小程序中展示一个地图,并将地图中心设置为北京,缩放级别为13。 通过类似的方式,可以调用腾讯地图的其他功能接口,实现地搜索、路线规划、定位等功能。 总之,小程序可以通过调用腾讯地图demo来实现丰富的地图功能,提升用户体验和使用价值。同时,开发者还可以根据具体需求,结合腾讯地图提供的API,进一步定制和优化小程序地图功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值