小程序map地图多点定位

最近需求有一个类似共享单车查看附近单车的功能,看了看小程序map api对多点定位显示描述的不怎么清晰。显示定位数组添加多个时就不显示了。踩了几个坑写了几个方法。最终弄出来了。有问题建议欢迎留言。
html:
<map id="map" scale="{{scale}}" bindcontroltap="controltap" markers="{{markers}}" bindmarkertap="markertap"
latitude="{{latitude}}"
longitude ="{{longitude}}"
controls="{{controls}}" show-location bindregionchange="regionchange" style="width: 100%; height: {{view.Height}}px;"></map>
javascript:
var app = getApp();
Page({
data: {
url:'',
listData: [
{
"id": 1,
"placeName": "中关村广场",
"placeImageUrl": "",
"placeOpenTime": 1505854800,
"placeCloseTime": 1505919600,
"placeAddress": "北京市海淀区中关广场",
"placeLongitude": "116.303900",
"placeLatitude": "39.976460"
}, {
"id": 2,
"placeName": "虎丘的广场",
"placeImageUrl": "",
"placeOpenTime": 1506286800,
"placeCloseTime": 1506258000,
"placeAddress": "江苏省苏州虎丘",
"placeLongitude": "120.410770",
"placeLatitude": "31.325370"
}, {
"id": 3,
"placeName": "东城区广场",
"placeImageUrl": "",
"placeOpenTime": 1506200400,
"placeCloseTime": 1506265200,
"placeAddress": "北京市东城区广场",
"placeLongitude": "116.407526",
"placeLatitude": "39.904030"
}, {
"id": 4,
"placeName": "回龙观广场",
"placeImageUrl": "",
"placeOpenTime": 1506243600,
"placeCloseTime": 1506265200,
"placeAddress": "北京市昌平区回龙观东大街",
"placeLongitude": "116.362300",
"placeLatitude": "40.083480"
}, {
"id": 5,
"placeName": "吴中的广场",
"placeImageUrl": "",
"placeOpenTime": 1506286800,
"placeCloseTime": 1506351600,
"placeAddress": "江苏苏州吴中",
"placeLongitude": "120.416152",
"placeLatitude": "31.322980"
}
],
scale:'15',
Height:'0',
controls:'40',
latitude:'',
longitude:'',
markers: [],
},
onReady: function (e) {
// 使用 wx.createMapContext 获取 map 上下文
this.mapCtx = wx.createMapContext('myMap')
},
onLoad: function () {
var that = this;
that.setData({
url: app.globalData.url
})
var data = JSON.stringify({
page: 1,
pageSize: 10,
request: {
placeLongitude: app.globalData.longitude,
placeLatitude: app.globalData.latitude,
userId: app.globalData.userId
}
})
wx.getLocation({
type: 'wgs84', //返回可以用于wx.openLocation的经纬度
success: (res) => {
that.setData({
markers: that.getSchoolMarkers(),
scale: 12,
longitude: res.longitude,
latitude: res.latitude
})
}
});
wx.getSystemInfo({
success: function (res) {
//设置map高度,根据当前设备宽高满屏显示
that.setData({
view: {
Height: res.windowHeight
},
})
}
})
},
controltap(e) {
this.moveToLocation()
},
getSchoolMarkers() {
var market = [];
for (let item of this.data.listData) {
let marker1 = this.createMarker(item);
market.push(marker1)
}
return market;
},
moveToLocation: function () {
this.mapCtx.moveToLocation()
},
strSub:function(a){
var str = a.split(".")[1];
str = str.substring(0, str.length - 1)
return a.split(".")[0] + '.' + str;
},
createMarker(point) {
let latitude = this.strSub(point.placeLatitude);
let longitude = point.placeLongitude;
let marker = {
iconPath: "../../image/banner5.jpeg",
id: point.id || 0,
name: point.placeName || '',
title: point.placeName || '',
latitude: latitude,
longitude: longitude,
label:{
x:-24,
y:-26,
content: point.placeName
},
width: 30,
height: 30
};
return marker;
}
})
小程序map地图多点定位的更多相关文章
- 微信小程序map地图的一些使用注意事项
1.小程序组件map,在微信7.0.4以上(不包括7.0.4)层级问题官方已作更新,可在map上随意添加任何标签使用z-index即可:微信7.0.4版本以下map组件层级默认是最高的,只能使用官方提 ...
- 小程序map地图上显示多个marker
wxml <map id="myMap" style="width: {{mapWidth}}rpx; height: {{mapHeight}}rpx;" ...
- 小程序map地图点击makert放大效果和点击放大地图
WXML文件和JS文件代码在下方 <view class='map'> <map id="map" longitude="{{location.lng} ...
- 微信小程序----map组件实现检索【定位位置】周边的POI
效果图 实现方法 地图采用微信小程序提供的map组件: 周边的数据坐标点通过高德地图提供的API接口,获取定位位置的周边或者指定位置周边的数据. WXML <view class="m ...
- 微信小程序:获取地理定位和显示相应的城市名称。
最近在看微信小程序,遇到地理定位显示城市名称的问题.本文就是记录这一过程. 解决方案 ...
- 支付宝小程序室内地图导航开发-支付宝小程序JS加载esmap地图
如果是微信小程序开发,请参考微信小程序室内地图导航开发-微信小程序JS加载esmap地图文章 一.在支付宝小程序里显示室内三维地图 需要满足的两个条件 调用ESMap室内地图需要用到小程序web-vi ...
- 百度小程序-map组件定位
给客户开发一个百度小程序,有个地图定位显示.百度小程序内置的api地图是不准的,通过百度一下,查询到坐标偏移算法公式,自己项目中使用,手机测试坐标已经正常显示! 经纬度,通过百度坐标拾取器拾取到! . ...
- mpvue小程序开发之 城市定位
背景: 在进行小程序开发时,有一个定位城市的需求,下面就来讲讲怎么实现这个功能的吧 解决方案: 小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名 ...
- 微信小程序开发demo-地图定位
要求要完成的功能: 1.要完成的要点是城市定位. 2.就是切换城市. 首页我们先参照微信小程序开放的官方文档找到: 在这里我们可以找到”当前位置经纬度“ getLocation: function ( ...
随机推荐
- Python学习十四:filter()
Python 中内置了filter()函数用于过滤序列. 使用方法: filter()接收一个函数和一个序列. filter()把传入的函数依次作用于每一个元素,然后依据返回值是True还是False ...
- ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol
上一篇文章中,我们介绍了音频驱动中对基本控制单元的封装:kcontrol.利用kcontrol,我们可以完成对音频系统中的mixer,mux,音量控制,音效控制,以及各种开关量的控制,通过对各种kco ...
- hdu 4123(树形dp+倍增)
Bob’s Race Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- [模板]FWT
写起来和fft很像,这里放个板子. 代码: #include<iostream> #include<cstdio> #include<cmath> #include ...
- java事件处理机制(自定义事件)
java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event sourc ...
- 基于ASP.Net Core开发一套通用后台框架记录-(项目的搭建)
写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...
- JavaScript--显示和隐藏(display属性)
网页中经常会看到显示和隐藏的效果,可通过display属性来设置. 语法: Object.style.display = value 注意:Object是获取的元素对象,如通过document.get ...
- CTSC+APIO+THUACM游记
退役之前,写点破事乐呵乐呵.. (同DaD3zZ) CTSC Day0 来到丽都 哈哈哈这可是四星级豪华酒店啊 想想要在这住7天 美滋滋 换了半天的房间 也没有换到一起 最后yzy& ...
- 关于 android屏幕适配
一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...
- [转]Android监听ListView里Button事件
本文转自:http://blog.csdn.net/lovediji/article/details/6753349 public View getView(int position, View co ...