以上开发工具显示正常。真机调试,这个点就显示不了。代码如下:
<map
id=“map”
longitude="{{longitude}}"
latitude="{{latitude}}"
scale="{{accuracy}}"
markers="{{showMarkers}}"
covers="{{covers}}"
bindmarkertap=“markertap”
bindcallouttap=“callouttap”
show-location
style=“width: 100%; height: {{mapHeight}}rpx;”
>
<cover-view class=“map-controls”>
<cover-view class=“map-reset” bindtap=“mapReset”>
<cover-image class=“map-img” src=“resources/picture/mapReset.png” />
</cover-view>
<cover-view class=“map-nav” bindtap=“mapNavigation”>
<cover-image class=“map-img” src=“resources/picture/mapNavigation.png” />
</cover-view>
</cover-view>
</map>
//----------------------------index.js-----------------------------------
const config = require("…/…/config.js");
var app = getApp();
Page({
data: {
activeIndex: 1, // tabs默认选中项
tasks: [],
mapHeight: 0, // 地图高度
latitude: 0,//纬度
longitude: 0,//经度
speed: 0,//速度
accuracy: 14,//位置精准度
markers: [],
showMarkers: [],
selectedMarker: {}
},
onReady: function (options) {
this.mapCtx = wx.createMapContext(‘myMap’)
},
onLoad: function (options) {
this.getLocation()
let windowHeight = wx.getSystemInfoSync().windowHeight // 屏幕的高度
let windowWidth = wx.getSystemInfoSync().windowWidth // 屏幕的宽度
let safeArea = wx.getSystemInfoSync().safeArea
console.log(safeArea)
let height = windowHeight * 750 / windowWidth - (44 + 48) * 2
this.setData({
mapHeight: height
})
},
onShow() {
if (typeof this.getTabBar === ‘function’ &&
this.getTabBar()) {
this.getTabBar().setData({
selected: 0
})
}
},
onShareAppMessage: function (res) {
return {
path: ‘/pages/task/index’
}
},
// 点击tabs:列表、地图
tabsClick(event) {
let index = event.detail.index
if (index == 0) {
wx.removeTabBarBadge({
index: 0,
})
}
},
// 选择任务
taskClick(event) {
let index = event.currentTarget.dataset.idx
let task = this.data.tasks[index]
let imageName = task[“status1”] + “-” + task[“status2”] + “-” + task[“status3”] + “.png”;
var marker = {
id: 0,
latitude: task[“lat”],
longitude: task[“lon”],
name: task[“title”],
desc: task[“desc”],
label: task[“deviceId”],
iconPath: ‘/pages/task/resources/picture/status-’ + imageName
}
this.setData({
latitude: marker.latitude,
longitude: marker.longitude,
showMarkers: [marker],
selectedMarker: marker,
activeIndex: 1
})
},
// 获取定位
getLocation: function () {
let that = this
wx.getLocation({
type: ‘gcj02’,
success: function (res) {
if (app.globalData.loginName.length < 1) {
return
}
var latitude = res.latitude
var longitude = res.longitude
var speed = res.speed
app.globalData.latitude = latitude
app.globalData.longitude = longitude
that.setData({
longitude: longitude,
latitude: latitude,
speed: speed
})
that.getAroundPoints()
that.getTasks()
}
})
},
// 点击标注点
markertap(e) {
let markers = this.data.markers
this.setData({
selectedMarker: markers[e.markerId]
})
},
// 点击气泡:查看设备详情
callouttap(e) {
let marker = this.data.markers[e.markerId]
console.log(marker)
wx.navigateTo({
url: ‘taskDetail/index?deviceId=’ + marker.label,
})
},
// 点击地图重置
mapReset() {
let markers = this.data.markers
this.setData({
showMarkers: markers
})
this.getAroundPoints()
},
// 点击地图导航
mapNavigation() {
let that = this
wx.openLocation({
latitude: that.data.selectedMarker.latitude,
longitude: that.data.selectedMarker.longitude,
name: that.data.selectedMarker.name,
address: that.data.selectedMarker.desc
})
},
// 定位完成后获取周边点位
getAroundPoints() {
let that = this
var params = “?lat=” + app.globalData.latitude + “&radiu=500”
params = params + “&lon=” + app.globalData.longitude
params = params + “&loginName=” + app.globalData.loginName
wx.request({
url: config.getPointsUrl + params,
success: function (res) {
if (!res.data.success) {
wx.showToast({
title: res.data.msg,
icon: “none”,
duration: 2500
})
return
}
console.log(res)
var markers = []
let points = res.data.points
for (var i = 0; i < points.length; i++) {
let point = points[i]
var marker = {}
if (point[“taskDevice”]) {
let imageName = point[“status1”] + “-” + point[“status2”] + “-” + point[“status3”] + “.png”;
marker = {
id: i,
latitude: point[“lat”],
longitude: point[“lon”],
name: point[“title”],
desc: point[“desc”],
label: point[“deviceId”],
iconPath: ‘/pages/task/resources/picture/status-’ + imageName
}
} else {
marker = {
id: i,
latitude: point[“lat”],
longitude: point[“lon”],
name: point[“title”],
desc: point[“desc”],
label: point[“deviceId”]
}
}
markers.push(marker)
}
console.log(markers)
that.setData({
markers: markers,
showMarkers: markers
})
},
fail: function () {
wx.showToast({
title: ‘网络请求失败,请检查网络’,
icon: “none”,
duration: 2500
})
}
})
},
// 获取任务列表
getTasks() {
let that = this
var params = “?lat=” + app.globalData.latitude
params = params + “&lon=” + app.globalData.longitude
params = params + “&loginName=” + app.globalData.loginName
wx.request({
url: config.getTasksUrl + params,
success: function (res) {
console.log(“任务列表”)
console.log(res)
if (!res.data.success) {
wx.showToast({
title: res.data.msg,
icon: “none”,
duration: 2500
})
return
}
wx.setTabBarBadge({
index: 0,
text: “” + res.data.tasks.length
})
that.setData({
tasks: res.data.tasks,
})
},
fail: function () {
wx.showToast({
title: ‘网络请求失败,请检查网络’,
icon: “none”,
duration: 2500
})
}
})
}
})
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)