miniprogram-demo/pages/component/map/map.js

1724 lines
43 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/component/map/map.js
let mapcontext
let unde
const data = {
maptype: '3',
maptypes: ['amap','google','baidu','auto'],
booleanArray: [true, false, 'no'],
showingSence: 'latlong',
mapShow: true,
editingLongitude: '113.93041',
editingLatitude: '22.53332',
// longitude: '114.063848',
// latitude: '22.551365',
// longitude: '85.1318117790985',
// latitude: '45.69139458288415',
latitude: 22.53332,
longitude: 113.93041,
// latitude: 200,
// longitude: 200,
scale: 12,
editingScale: 12,
minScale: 3,
editingMinscale: 3,
maxScale: 20,
editingMaxscale: 20,
markers:[
{
"id": 1,
"latitude": 22.54332,
"longitude": 113.94041,
"joinCluster": true,
"title": "title1",
"zIndex": 1,
"iconPath": "/assets/images/logo.png",
"rotate": 0,
"alpha": 1,
"width": 30,
"height": 30,
"callout": {
"content": "point1",
"color": "#ff0000",
"fontSize": 14,
"borderRadius": 7,
"borderWidth": 2,
"borderColor": "#000000",
"bgColor": "#ffffff",
"padding": 1,
"display": "ALWAYS",
"textAlign": "center",
"anchorX": 0,
"anchorY": 0
},
"customCallout": {
"display": "BYCLICK",
"anchorX": 0,
"anchorY": 0
},
"label": {
"content": "label1",
"color": "",
"fontSize": 16,
"anchorX": 0,
"anchorY": 0,
"borderWidth": 30,
"borderColor": "",
"borderRadius": 10,
"bgColor": "",
"padding": 10,
"textAlign": "center"
},
"anchor": {
"x": 0,
"y": 0
},
"aria-label": "marker1 aria-label"
},
{
"id": 2,
"latitude": 22.52332,
"longitude": 113.92041
},
{
"id": 3,
"latitude": 22.52332,
"longitude": 113.93041
},
{
"id":4,
"latitude": 22.53332,
"longitude": 113.93041,
"callout": {
"content": "point4",
},
"label": {
"content": "label4"
}
},
{
"id":5,
"latitude": 22.51332,
"longitude": 113.92041,
"joinCluster": true,
"callout": {
"content": "point5",
},
"label": {
"content": "label5"
}
},
{
"id":6,
"latitude": 22.51332,
"longitude": 113.91041,
"joinCluster": true,
"label": {
"content": "label6"
}
},
{
"id":7,
"latitude": 22.50332,
"longitude": 113.90041,
"joinCluster": true,
"callout": {
"content": "point7",
},
"label": {
"content": "label7"
}
}
],
editingMarkers: `
[
{
"id": 1,
"latitude": 22.54332,
"longitude": 113.94041,
"joinCluster": true,
"title": "title1",
"zIndex": 1,
"iconPath": "/assets/images/logo.png",
"rotate": 0,
"alpha": 1,
"width": 30,
"height": 30,
"callout": {
"content": "point1",
"color": "#ff0000",
"fontSize": 14,
"borderRadius": 7,
"borderWidth": 2,
"borderColor": "#000000",
"bgColor": "#ffffff",
"padding": 1,
"display": "ALWAYS",
"textAlign": "center",
"anchorX": 0,
"anchorY": 0
},
"customCallout": {
"display": "BYCLICK",
"anchorX": 0,
"anchorY": 0
},
"label": {
"content": "label1",
"color": "",
"fontSize": 16,
"anchorX": 0,
"anchorY": 0,
"borderWidth": 30,
"borderColor": "",
"borderRadius": 10,
"bgColor": "",
"padding": 10,
"textAlign": "center"
},
"anchor": {
"x": 0,
"y": 0
},
"aria-label": "marker1 aria-label"
},
{
"id": 2,
"latitude": 22.52332,
"longitude": 113.92041
},
{
"id": 3,
"latitude": 22.52332,
"longitude": 113.93041
},
{
"id":4,
"latitude": 22.53332,
"longitude": 113.93041,
"callout": {
"content": "point4"
},
"label": {
"content": "label4"
}
},
{
"id":5,
"latitude": 22.51332,
"longitude": 113.92041,
"joinCluster": true,
"callout": {
"content": "point5"
},
"label": {
"content": "label5"
}
},
{
"id":6,
"latitude": 22.51332,
"longitude": 113.91041,
"joinCluster": true,
"label": {
"content": "label6"
}
},
{
"id":7,
"latitude": 22.50332,
"longitude": 113.90041,
"joinCluster": true,
"callout": {
"content": "point7"
},
"label": {
"content": "label7"
}
}
]
`,
polyline: [{
"points": [{
"latitude": 22.53332,
"longitude": 113.93041
},{
"latitude": 22.52332,
"longitude": 113.92041
},{
"latitude": 22.52332,
"longitude": 113.93041
}],
"color": "#02ecff",
"colorList": ["#00bcd4","#ff9800"],
"dottedLine": false,
"arrowIconPath": "",
"width": 6,
"arrowLine": true,
"borderColor": "#000000",
"borderWidth": 6,
"level": "abovelabels"
}],
editingPolyline: `
[{
"points": [{
"latitude": 22.52332,
"longitude": 113.93041
},{
"latitude": 22.51332,
"longitude": 113.92041
},{
"latitude": 22.51332,
"longitude": 113.93041
}],
"color": "#02ecff",
"colorList": ["#00bcd4","#ff9800"],
"dottedLine": false,
"arrowIconPath": "",
"width": 6,
"arrowLine": true,
"borderColor": "#000000",
"borderWidth": 6,
"level": "abovelabels"
}]
`,
circles: [{
"latitude": 22.53932,
"longitude": 113.93641,
"color": "#ff455b",
"fillColor": "#acfd00",
"radius": 500,
"strokeWidth": 5,
"level": "abovelabels"
}],
editingCircles: `[{
"latitude": 22.53932,
"longitude": 113.93641,
"color": "#ff455b",
"fillColor": "#acfd00",
"radius": 500,
"strokeWidth": 5,
"level": "abovelabels"
}]`,
controls: [{
"id": 4,
"position": {
"left": 20,
"top": 60,
"width": 30,
"height": 30
},
iconPath: "https://img2.baidu.com/it/u=1558944015,1677859960&fm=26&fmt=auto",
clickable: true
},{
"id": 5,
"position": {
"left": 20,
"top": 100,
"width": 30,
"height": 30
},
iconPath: "/image/duck.gif",
clickable: true
}],
editingControls: `
[{
"id": 4,
"position": {
"left": 20,
"top": 60,
"width": 30,
"height": 30
},
"iconPath": "/assets/images/logo.png",
"clickable": true
},{
"id": 5,
"position": {
"left": 20,
"top": 100,
"width": 30,
"height": 30
},
"iconPath": "/image/duck.gif",
"clickable": true
}]
`,
includePoints: [
{
"id": 1,
"latitude": 22.03332,
"longitude": 113.03041,
},{
"id": 2,
"latitude": 21.53332,
"longitude": 112.93041,
},{
"id": 3,
"latitude": 23.53332,
"longitude": 114.93041,
}
],
editingIncludePoints: `[
{
"id": 1,
"latitude": 22.03332,
"longitude": 113.03041
},{
"id": 2,
"latitude": 21.53332,
"longitude": 112.93041
},{
"id": 3,
"latitude": 23.53332,
"longitude": 114.93041
}
]`,
showLocation: false,
polygons: [{
"points": [
{
"latitude": 22.53932,
"longitude": 113.93641
},
{
"latitude": 22.53932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.93641
}
],
"strokeWidth": 4,
"strokeColor": "#9C27B0",
"fillColor": "#fff202",
"zIndex": 1,
"level": "abovelabels"
}],
editingPolygons: `
[{
"points": [
{
"latitude": 22.53932,
"longitude": 113.93641
},
{
"latitude": 22.53932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.93641
}
],
"strokeWidth": 4,
"strokeColor": "#9C27B0",
"fillColor": "#fff202",
"zIndex": 1,
"level": "abovelabels"
}]
`,
rotate: 90,
editingrotate: 90,
skew: 20,
editingskew: 20,
enable3D: true,
showCompass: false,
showScale: true,
enableOverlooking: true,
enableZoom: true,
enableScroll: true,
enableRotate: true,
enableSatellite: true,
enableTraffic: false,
enablePoi: true,
enableBuilding: true,
setting: {
"skew": 0,
"rotate": 0,
"showLocation": false,
"showScale": false,
"enableZoom": true,
"enableScroll": true,
"enableRotate": true,
"showCompass": false,
"enable3D": false,
"enableOverlooking": false,
"enableSatellite": false,
"enableTraffic": false,
},
eidtingSetting: `
{
"skew": 0,
"rotate": 0,
"showLocation": false,
"showScale": false,
"enableZoom": true,
"enableScroll": true,
"enableRotate": true,
"showCompass": false,
"enable3D": false,
"enableOverlooking": false,
"enableSatellite": false,
"enableTraffic": false
}
`,
controlAreaHeight: '400px',
latlong: `[22.53332,113.93041]`,
translatemarkerMarkerid: 'no',
translatemarker_marker_autoRotate: 2,
translatemarker_rotate: 'no',
translatemarker_duration: 'no',
translatemarker_marker_moveWithRotate: 2,
translatemarker_destination: `{"latitude": 22.33332, "longitude": 113.83041 }`,
markerIconPath: '/assets/images/logo.png',
toNumber: true,
moveAlong_path: `[
{
"latitude": 22.54332,
"longitude": 113.94041
},
{
"latitude": 22.53332,
"longitude": 113.93041
},
{
"latitude": 22.51332,
"longitude": 113.93041
},
{
"latitude": 22.51332,
"longitude": 113.95041
},
{
"latitude": 22.53332,
"longitude": 113.95041
},
{
"latitude": 22.54332,
"longitude": 113.94041
}
]`,
moveAlongMarkerid: 'no',
moveAlong_autoRotate: 2,
moveAlong_duration: 'no',
moveAlong2_path: `[
{
"latitude": 22.54332,
"longitude": 113.94041
},
{
"latitude": 22.53332,
"longitude": 113.93041
},
{
"latitude": 22.51332,
"longitude": 113.93041
},
{
"latitude": 22.51332,
"longitude": 113.95041
},
{
"latitude": 22.53332,
"longitude": 113.95041
},
{
"latitude": 22.54332,
"longitude": 113.94041
}
]`,
moveAlong2Markerid: 'no',
moveAlong2_autoRotate: 2,
moveAlong2_duration: 'no',
centerOffset: [0.5,0.5],
editingcenterOffset : `[0.5,0.5]`,
controls_id: 'no',
controls_position: `{
"left": 20,
"top": 20,
"width": 30,
"height": 30
}`,
controls_iconPath: '',
controls_clickable: 2,
polyline_points: `[{
"latitude": 22.53332,
"longitude": 113.93041
},{
"latitude": 22.52332,
"longitude": 113.92041
},{
"latitude": 22.52332,
"longitude": 113.93041
}]`,
polyline_color: "no",
polyline_colorList: `["#00bcd4","#ff9800"]`,
polyline_dottedLine: 2,
polyline_arrowIconPath: "no",
polyline_width: 'no',
polyline_arrowLine: false,
polyline_borderColor: 'no',
polyline_borderWidth: 'no',
polyline_level: 'abovelabels',
circle_latitude: 'no',
circle_longitude: 'no',
circle_color: 'no',
circle_fillColor: 'no',
circle_radius: 'no',
circle_strokeWidth: 'no',
circle_level: 'abovelabels',
includePoints_points: `[
{
"id": 1,
"latitude": 22.03332,
"longitude": 113.03041
},{
"id": 2,
"latitude": 21.53332,
"longitude": 112.93041
},{
"id": 3,
"latitude": 23.53332,
"longitude": 114.93041
}
]`,
includePoints_padding: `[10,10,10,10]`,
polygons_points: `[
{
"latitude": 22.53932,
"longitude": 113.93641
},
{
"latitude": 22.53932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.92641
},
{
"latitude": 22.52932,
"longitude": 113.93641
}
]`,
polygons_strokeWidth: 'no',
polygons_strokeColor: 'no',
polygons_fillColor: 'no',
polygons_zIndex: 'no',
polygons_level: 'no',
markers_id: '5',
markers_latitude: '22.51932',
markers_longitude: '113.92641',
markers_joinCluster: 2,
markers_title: 'no',
markers_zIndex: 'no',
markers_iconPath: 'no',
markers_rotate: 'no',
markers_alpha: 'no',
markers_width: 'no',
markers_height: 'no',
markers_callout: `
{
"content": "point1",
"color": "#ff0000",
"fontSize": 14,
"borderRadius": 7,
"borderWidth": 2,
"borderColor": "#000000",
"bgColor": "#ffffff",
"padding": 1,
"display": "ALWAYS",
"textAlign": "center",
"anchorX": 0,
"anchorY": 0
}
`,
markers_customCallout: `
{
"display": "BYCLICK",
"anchorX": 0,
"anchorY": 0
}
`,
markers_label: `
{
"content": "label1",
"color": "#ff0000",
"fontSize": 5,
"anchorX": 0,
"anchorY": 0,
"borderWidth": 1,
"borderColor": "#000000",
"borderRadius": 2,
"bgColor": "#ffffff",
"padding": 1,
"textAlign": "center"
}
`,
markers_anchor: `
{
"x": 0,
"y": 0
}
`,
markers_arialabel: 'no',
addmarkers_clear: 2,
addmarkers_markers: `[
{
"id": 666,
"latitude": 22.51332,
"longitude": 113.92041
},
{
"id": 667,
"latitude": 22.50332,
"longitude": 113.93041
}
]`,
removemarker_markerIds: `[]`,
initmarkercluster_enableDefaultStyle: 2,
initmarkercluster_zoomOnClick: 2,
initmarkercluster_gridSize: 60,
movetolocation_longitude: '113.93041',
movetolocation_latitude: '22.53332',
openmapapp_longitude: '113.93041',
openmapapp_latitude: '22.53332',
openmapapp_destination: '目的地'
}
Page({
/**
* 页面的初始数据
*/
data: {
...data
},
resetData () {
this.setData(data)
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// const {windowHeight} = wx.getSystemInfoSync()
const windowHeight = 650
this.setData({
controlAreaHeight: (windowHeight - 324) + 'px',
// latlong: `[${this.data.latitude}, ${this.data.longitude}]`
})
this.emitCreateMapContext()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
emitCreateMapContext() {
mapcontext = wx.createMapContext('maplearn')
console.log(mapcontext)
},
bindtapHandler (res) {
console.log('debug: bindtapHandler ', res)
},
bindmarkertapHandler (res) {
console.log('debug: bindmarkertapHandler ', res)
},
bindlabeltapHandler (res) {
console.log('debug: bindlabeltapHandler ', res)
},
bindcontroltapHandler (res) {
console.log('debug: bindcontroltapHandler ', res)
},
bindcallouttapHandler (res) {
console.log('debug: bindcallouttapHandler ', res)
},
bindupdatedHandler (res) {
console.log('debug: bindupdatedHandler ', res)
},
bindregionchangeHandler (res) {
console.log('debug: bindregionchangeHandler ', res)
},
bindpoitapHandler (res) {
console.log('debug: bindpoitapHandler ', res)
},
bindanchorpointtapHandler (res) {
console.log('debug: bindanchorpointtapHandler ', res)
},
countMarker () {
let {
markers_id,
markers_latitude,
markers_longitude,
markers_joinCluster,
markers_title,
markers_zIndex,
markers_iconPath,
markers_rotate,
markers_alpha,
markers_width,
markers_height,
markers_callout,
markers_customCallout,
markers_label,
markers_anchor,
markers_arialabel,
booleanArray,
toNumber
} = this.data
markers_joinCluster = booleanArray[markers_joinCluster]
try {
markers_callout = JSON.parse(markers_callout)
} catch (e) {}
try {
markers_customCallout = JSON.parse(markers_customCallout)
} catch (e) {}
try {
markers_label = JSON.parse(markers_label)
} catch (e) {}
try {
markers_anchor = JSON.parse(markers_anchor)
} catch (e) {}
const params = {}
markers_id !== 'no' && (params.id = toNumber ? Number(markers_id) : String(markers_id))
markers_latitude !== 'no' && (params.latitude = toNumber ? Number(markers_latitude) : String(markers_latitude))
markers_longitude !== 'no' && (params.longitude = toNumber ? Number(markers_longitude) : String(markers_longitude))
markers_zIndex !== 'no' && (params.zIndex = toNumber ? Number(markers_zIndex) : String(markers_zIndex))
markers_rotate !== 'no' && (params.rotate = toNumber ? Number(markers_rotate) : String(markers_rotate))
markers_alpha !== 'no' && (params.alpha = toNumber ? Number(markers_alpha) : String(markers_alpha))
markers_width !== 'no' && (params.width = toNumber ? Number(markers_width) : String(markers_width))
markers_height !== 'no' && (params.height = toNumber ? Number(markers_height) : String(markers_height))
markers_callout !== 'no' && (params.callout = markers_callout)
markers_customCallout !== 'no' && (params.customCallout = markers_customCallout)
markers_label !== 'no' && (params.label = markers_label)
markers_anchor !== 'no' && (params.anchor = markers_anchor)
markers_joinCluster !== 'no' && (params.joinCluster = markers_joinCluster)
markers_title !== 'no' && (params.title = markers_title)
markers_iconPath !== 'no' && (params.iconPath = markers_iconPath)
markers_arialabel !== 'no' && (params['aria-label'] = markers_arialabel)
return params
},
addMarker () {
const params = this.countMarker()
console.log('添加markers: ', params)
const markers = this.data.markers
markers.push(params)
this.setData({
markers
})
},
changeMarker () {
let { editingMarkers } = this.data
try {
editingMarkers = JSON.parse(editingMarkers)
} catch (e) {
console.log(e)
}
console.log('changeMarker: ', editingMarkers)
this.setData({
markers: editingMarkers
})
},
randomHexColor() {
var hex = Math.floor(Math.random() * 16777216).toString(16); //生成ffffff以内16进制数
while (hex.length < 6) { //while循环判断hex位数少于6位前面加0凑够6位
hex = '0' + hex;
}
return '#' + hex; //返回‘#'开头16进制颜色
},
randomRadius() {
return Math.floor(Math.random() * 3000)
},
changePolyline () {
let polyline
try {
polyline = JSON.parse(this.data.editingPolyline)
} catch(e) {
polyline = this.data.editingPolyline
}
this.setData({
polyline
})
console.log('当前polyline: ', this.data.polyline)
},
addPolyline () {
let {
polyline_points,
polyline_color,
polyline_colorList,
polyline_dottedLine,
polyline_arrowIconPath,
polyline_width,
polyline_arrowLine,
polyline_borderColor,
polyline_borderWidth,
polyline_level,
booleanArray,
toNumber
} = this.data
polyline_dottedLine = booleanArray[polyline_dottedLine]
polyline_arrowLine = booleanArray[polyline_arrowLine]
const params = {}
try {
polyline_points = JSON.parse(polyline_points)
} catch (e) {}
try {
polyline_colorList = JSON.parse(polyline_colorList)
} catch (e) {}
polyline_points !== 'no' && (params.points = polyline_points)
polyline_color !== 'no' && (params.color = polyline_color)
polyline_colorList !== 'no' && (params.colorList = polyline_colorList)
polyline_dottedLine !== 'no' && (params.dottedLine = polyline_dottedLine)
polyline_arrowIconPath !== 'no' && (params.arrowIconPath = polyline_arrowIconPath)
polyline_width !== 'no' && (params.width = toNumber ? Number(polyline_width) : String(polyline_width))
polyline_arrowLine !== 'no' && (params.arrowLine = polyline_arrowLine)
polyline_borderColor !== 'no' && (params.borderColor = polyline_borderColor)
polyline_borderWidth !== 'no' && (params.borderWidth = toNumber ? Number(polyline_borderWidth) : String(polyline_borderWidth))
polyline_level !== 'no' && (params.level = polyline_level)
console.log('添加polyline : ', params)
const polyline = this.data.polyline
polyline.push(params)
this.setData({
polyline
})
},
addCircles () {
let {
circle_latitude,
circle_longitude,
circle_color,
circle_fillColor,
circle_radius,
circle_strokeWidth,
circle_level,
toNumber
} = this.data
const params = {}
circle_latitude !== 'no' && (params.latitude = toNumber ? Number(circle_latitude) : String(circle_latitude))
circle_longitude !== 'no' && (params.longitude = toNumber ? Number(circle_longitude) : String(circle_longitude))
circle_color !== 'no' && (params.color = circle_color)
circle_fillColor !== 'no' && (params.fillColor = circle_fillColor)
circle_radius !== 'no' && (params.radius = circle_radius)
circle_strokeWidth !== 'no' && (params.strokeWidth = circle_strokeWidth)
circle_level !== 'no' && (params.level = circle_level)
console.log('添加circle : ', params)
const circles = this.data.circles
circles.push(params)
this.setData({
circles
})
},
changeCircles () {
let { editingCircles } = this.data
try {
editingCircles = JSON.parse(editingCircles)
} catch (e) {}
this.setData({
circles: editingCircles
})
},
addControls () {
let { controls_id, controls_iconPath, controls_position, controls_clickable, toNumber, booleanArray } = this.data
controls_clickable = booleanArray[controls_clickable]
try {
controls_position = JSON.parse(controls_position)
} catch(e) {}
const params = {}
controls_id !== 'no' && (params.id = toNumber ? Number(controls_id) : String(controls_id))
controls_iconPath !== 'no' && (params.iconPath = controls_iconPath)
controls_position !== 'no' && (params.position = controls_position)
controls_clickable !== 'no' && (params.clickable = controls_clickable)
const controls = this.data.controls
controls.push(params)
console.log('添加controls 参数: ', params)
this.setData({
controls
})
},
consoleControls () {
console.log('当前controls: ', this.data.controls)
this.setData({
editingControls: JSON.stringify(this.data.controls)
})
},
changeControls () {
let controls
try {
controls = JSON.parse(this.data.editingControls)
} catch(e) {
controls = this.data.editingControls
}
this.setData({
controls
})
console.log('当前controls: ', this.data.controls)
},
changeIncludePoints () {
let { editingIncludePoints } = this.data
try {
editingIncludePoints = JSON.parse(editingIncludePoints)
} catch (e) {}
console.log('includePoints : ', editingIncludePoints)
this.setData({
includePoints: editingIncludePoints
})
},
switchtoNumber (event) {
this.setData({
toNumber: event.detail.value
});
},
changeAttribute (e) {
const attribute = e.target.dataset.attribute
const obj = {}
obj[attribute] = !!!this.data[attribute]
console.log('修改参数 ', obj)
this.setData(obj)
},
attributePickerChange(e) {
const attribute = e.target.dataset.attribute
const obj = {}
obj[attribute] = e.detail.value
console.log('修改参数 ', obj)
this.setData(obj)
},
changeInputValue (e) {
const attribute = e.target.dataset.attribute
const obj = {}
obj[attribute] = e.detail.value
console.log('修改数据 ', obj)
this.setData(obj)
},
changePolygons () {
let { editingPolygons } = this.data
try {
editingPolygons = JSON.parse(editingPolygons)
} catch (e) {}
console.log('改变polygons: ', editingPolygons)
this.setData({
polygons: editingPolygons
})
},
addPolygons () {
let {
polygons_points,
polygons_strokeWidth,
polygons_strokeColor,
polygons_fillColor,
polygons_zIndex,
polygons_level,
toNumber
} = this.data
try {
polygons_points = JSON.parse(polygons_points)
} catch (e) {}
const params = {}
polygons_points !== 'no' && (params.points = polygons_points)
polygons_strokeWidth !== 'no' && (params.strokeWidth = toNumber ? Number(polygons_strokeWidth) : String(polygons_strokeWidth))
polygons_zIndex !== 'no' && (params.zIndex = toNumber ? Number(polygons_zIndex) : String(polygons_zIndex))
polygons_strokeColor !== 'no' && (params.strokeColor = polygons_strokeColor)
polygons_fillColor !== 'no' && (params.fillColor = polygons_fillColor)
polygons_level !== 'no' && (params.level = polygons_level)
console.log('添加polygons: ', params)
const polygons = this.data.polygons
polygons.push(params)
this.setData({
polygons
})
},
changeSetting () {
let {eidtingSetting} = this.data
try {
eidtingSetting = JSON.parse(eidtingSetting)
} catch (e) {}
console.log('修改setting ', eidtingSetting)
this.setData({
setting: eidtingSetting
})
},
switchType (e) {
const type = e.target.dataset.sencetype
this.setData({
showingSence: type
})
},
emitAddMarkers () {
let {
addmarkers_clear,
booleanArray
} = this.data
addmarkers_clear = booleanArray[addmarkers_clear]
const marker = this.countMarker()
const params = {
markers: [marker]
}
addmarkers_clear !== 'no' && (params.clear = addmarkers_clear)
console.log('addMarkers 参数: ', params)
mapcontext.addMarkers(Object.assign({
success: (res) => {
console.log('debug: addMarkers succcess ', res)
},
fail: (res) => {
console.log('debug: addMarkers fail ', res)
},
complete: (res) => {
console.log('debug: addMarkers complete ', res)
}
}, params))
},
emitAddMarkers2 () {
let {
addmarkers_markers,
addmarkers_clear,
booleanArray
} = this.data
addmarkers_clear = booleanArray[addmarkers_clear]
try {
addmarkers_markers = JSON.parse(addmarkers_markers)
} catch(e) {}
const params = {}
addmarkers_markers !== 'no' && (params.markers = addmarkers_markers)
addmarkers_clear !== 'no' && (params.clear = addmarkers_clear)
console.log('addMarkers 参数: ', params)
mapcontext.addMarkers(Object.assign({
success: (res) => {
console.log('debug: addMarkers succcess ', res)
},
fail: (res) => {
console.log('debug: addMarkers fail ', res)
},
complete: (res) => {
console.log('debug: addMarkers complete ', res)
}
}, params))
},
emitFromScreenLocation () {
mapcontext.fromScreenLocation({
success: (res) => {
console.log('debug: fromScreenLocation succcess ', res)
},
fail: (res) => {
console.log('debug: fromScreenLocation fail ', res)
},
complete: (res) => {
console.log('debug: fromScreenLocation complete ', res)
}
})
},
emitGetCenterLocation () {
mapcontext.getCenterLocation({
iconPath: '/assets/images/logo.png',
success: (res) => {
console.log('debug: getCenterLocation succcess ', res)
},
fail: (res) => {
console.log('debug: getCenterLocation fail ', res)
},
complete: (res) => {
console.log('debug: getCenterLocation complete ', res)
}
})
},
emitApi (e) {
const apiname = e.target.dataset.apiname
mapcontext[apiname]({
success: (res) => {
console.log(`debug: ${apiname} succcess `, res)
},
fail: (res) => {
console.log(`debug: ${apiname} fail `, res)
},
complete: (res) => {
console.log(`debug: ${apiname} complete `, res)
}
})
},
emitIncludePoints () {
let {
includePoints_points,
includePoints_padding
} = this.data
try {
includePoints_points = JSON.parse(includePoints_points)
includePoints_padding = JSON.parse(includePoints_padding)
} catch (e) {}
const params = {}
includePoints_points !== 'no' && (params.points = includePoints_points)
includePoints_padding !== 'no' && (params.padding = includePoints_padding)
console.log('includePoints 参数: ', params)
mapcontext.includePoints(Object.assign({
success: (res) => {
console.log(`debug: includePoints succcess `, res)
},
fail: (res) => {
console.log(`debug: includePoints fail `, res)
},
complete: (res) => {
console.log(`debug: includePoints complete `, res)
}
}, params))
},
emitInitMarkerCluster () {
let {
initmarkercluster_enableDefaultStyle,
initmarkercluster_zoomOnClick,
initmarkercluster_gridSize,
booleanArray,
toNumber
} = this.data
initmarkercluster_enableDefaultStyle = booleanArray[initmarkercluster_enableDefaultStyle]
initmarkercluster_zoomOnClick = booleanArray[initmarkercluster_zoomOnClick]
const params = {}
initmarkercluster_enableDefaultStyle !== 'no' && (params.enableDefaultStyle = initmarkercluster_enableDefaultStyle)
initmarkercluster_zoomOnClick !== 'no' && (params.zoomOnClick = initmarkercluster_zoomOnClick)
initmarkercluster_gridSize !== 'no' && (params.gridSize = toNumber ? Number(initmarkercluster_gridSize) : String(initmarkercluster_gridSize))
console.log('initMarkerCluster 参数: ', params)
mapcontext.initMarkerCluster(Object.assign({
success: (res) => {
console.log(`debug: initMarkerCluster succcess `, res)
},
fail: (res) => {
console.log(`debug: initMarkerCluster fail `, res)
},
complete: (res) => {
console.log(`debug: initMarkerCluster complete `, res)
}
}, params))
},
emitMoveAlong2 () {
let {
moveAlong2_path,
moveAlong2Markerid,
moveAlong2_autoRotate,
moveAlong2_duration,
booleanArray,
toNumber
} = this.data
moveAlong2_autoRotate = booleanArray[moveAlong2_autoRotate]
let path = moveAlong2_path
// if (moveAlong2_path === '{}') {
// path = {}
// } else if (moveAlong2_path === '[]') {
// path = []
// } else {
// try {
// path = moveAlong2_path.replace('[', '').replace(']', '').split('},').map(e => {
// const str = e.indexOf('}') > -1 ? e : (e + '}')
// return JSON.parse(str)
// })
// } catch (e) {}
// }
try {
path = JSON.parse(moveAlong2_path)
} catch (e) {}
try {
moveAlong2Markerid = JSON.parse(moveAlong2Markerid)
} catch(e) {
if (!isNaN(moveAlong2Markerid)) {
moveAlong2Markerid = toNumber ? Number(moveAlong2Markerid) : String(moveAlong2Markerid)
}
}
const params = {}
moveAlong2Markerid !== 'no' && (params.markerId = moveAlong2Markerid)
moveAlong2_autoRotate !== 'no' && (params.autoRotate = moveAlong2_autoRotate)
moveAlong2_duration !== 'no' && (params.duration = toNumber ? Number(moveAlong2_duration) : String(moveAlong2_duration))
moveAlong2_path !== 'no' && (params.path = path)
console.log('moveAlong 参数: ', params)
mapcontext.moveAlong(Object.assign({
success: (res) => {
console.log(`debug: moveAlong succcess `, res)
},
fail: (res) => {
console.log(`debug: moveAlong fail `, res)
},
complete: (res) => {
console.log(`debug: moveAlong complete `, res)
}
}, params))
},
emitMoveAlong () {
let {
moveAlong_path,
moveAlongMarkerid,
moveAlong_autoRotate,
moveAlong_duration,
booleanArray,
toNumber
} = this.data
moveAlong_autoRotate = booleanArray[moveAlong_autoRotate]
let path = moveAlong_path
// if (moveAlong_path === '{}') {
// path = {}
// } else if (moveAlong_path === '[]') {
// path = []
// } else {
// try {
// path = moveAlong_path.replace('[', '').replace(']', '').split('},').map(e => {
// const str = e.indexOf('}') > -1 ? e : (e + '}')
// return JSON.parse(str)
// })
// } catch (e) {}
// }
try {
path = JSON.parse(moveAlong_path)
} catch (e) {}
try {
moveAlongMarkerid = JSON.parse(moveAlongMarkerid)
} catch (e) {
if (!isNaN(moveAlongMarkerid)) {
moveAlongMarkerid = toNumber ? Number(moveAlongMarkerid) : String(moveAlongMarkerid)
}
}
const params = {}
moveAlongMarkerid !== 'no' && (params.markerId = moveAlongMarkerid)
moveAlong_autoRotate !== 'no' && (params.autoRotate = moveAlong_autoRotate)
moveAlong_duration !== 'no' && (params.duration = toNumber ? Number(moveAlong_duration) : String(moveAlong_duration))
moveAlong_path !== 'no' && (params.path = path)
console.log('moveAlong 参数: ', params)
mapcontext.moveAlong(Object.assign({
success: (res) => {
console.log(`debug: moveAlong succcess `, res)
},
fail: (res) => {
console.log(`debug: moveAlong fail `, res)
},
complete: (res) => {
console.log(`debug: moveAlong complete `, res)
}
}, params))
},
emitMoveToLocation () {
let {
movetolocation_longitude,
movetolocation_latitude,
toNumber
} = this.data
const params = {}
movetolocation_longitude !== 'no' && (params.longitude = toNumber ? Number(movetolocation_longitude) : String(movetolocation_longitude))
movetolocation_latitude !== 'no' && (params.latitude = toNumber ? Number(movetolocation_latitude) : String(movetolocation_latitude))
console.log('moveToLocation 参数: ', params)
mapcontext.moveToLocation(Object.assign({
success: (res) => {
console.log(`debug: moveToLocation succcess `, res)
},
fail: (res) => {
console.log(`debug: moveToLocation fail `, res)
},
complete: (res) => {
console.log(`debug: moveToLocation complete `, res)
}
}, params))
},
emitOn () {
mapcontext.on('markerClusterCreate', (res) => {
console.log('debug: mapcontext.on markerClusterCreate ',res)
})
mapcontext.on('markerClusterClick', (res) => {
console.log('debug: mapcontext.on markerClusterClick ',res)
})
},
emitOpenMapApp () {
let {
openmapapp_longitude,
openmapapp_latitude,
openmapapp_destination,
toNumber
} = this.data
const params = {}
openmapapp_longitude !== 'no' && (params.longitude = toNumber ? Number(openmapapp_longitude) : String(openmapapp_longitude))
openmapapp_latitude !== 'no' && (params.latitude = toNumber ? Number(openmapapp_latitude) : String(openmapapp_latitude))
openmapapp_destination !== 'no' && (params.destination = openmapapp_destination)
console.log('openMapApp 参数: ', params)
mapcontext.openMapApp(Object.assign({
success: (res) => {
console.log(`debug: openMapApp succcess `, res)
},
fail: (res) => {
console.log(`debug: openMapApp fail `, res)
},
complete: (res) => {
console.log(`debug: openMapApp complete `, res)
}
}, params))
},
emitRemoveMarkers () {
let { removemarker_markerIds } = this.data
try {
removemarker_markerIds = JSON.parse(removemarker_markerIds)
} catch (e) {}
const params = {}
removemarker_markerIds !== 'no' && (params.markerIds = removemarker_markerIds)
console.log('removeMarkers 参数: ', params)
mapcontext.removeMarkers(Object.assign({
success: (res) => {
console.log(`debug: removeMarkers succcess `, res)
},
fail: (res) => {
console.log(`debug: removeMarkers fail `, res)
},
complete: (res) => {
console.log(`debug: removeMarkers complete `, res)
}
}, params))
},
emitSetCenterOffset () {
const params = {}
let { centerOffset } = this.data
try {
centerOffset = JSON.parse(centerOffset)
} catch (e) {}
centerOffset !== 'no' && (params.offset = centerOffset)
console.log('setCenterOffset 参数: ', params)
mapcontext.setCenterOffset(Object.assign({
success: (res) => {
console.log(`debug: setCenterOffset succcess `, res)
},
fail: (res) => {
console.log(`debug: setCenterOffset fail `, res)
},
complete: (res) => {
console.log(`debug: setCenterOffset complete `, res)
}
}, params))
},
emitSetLocMarkerIcon () {
const params = {}
this.data.markerIconPath !== 'no' && (params.iconPath = this.data.markerIconPath)
console.log('setLocMarkerIcon 参数: ', params)
mapcontext.setLocMarkerIcon({
iconPath: '/assets/images/logo.png',
success: (res) => {
console.log(`debug: setLocMarkerIcon succcess `, res)
},
fail: (res) => {
console.log(`debug: setLocMarkerIcon fail `, res)
},
complete: (res) => {
console.log(`debug: setLocMarkerIcon complete `, res)
}
})
},
emitTranslateMarker ({nodest}) {
let {
translatemarkerMarkerid,
translatemarker_marker_autoRotate,
translatemarker_rotate,
translatemarker_duration,
translatemarker_marker_moveWithRotate,
translatemarker_destination,
booleanArray,
toNumber
} = this.data
translatemarker_marker_autoRotate = booleanArray[translatemarker_marker_autoRotate]
translatemarker_marker_moveWithRotate = booleanArray[translatemarker_marker_moveWithRotate]
let destination = translatemarker_destination
if (translatemarker_destination === 'null') {
destination = null
} else if (translatemarker_destination === '[]') {
destination = []
} else {
try {
destination = JSON.parse(translatemarker_destination)
} catch (e) {}
}
try {
translatemarkerMarkerid = JSON.parse(translatemarkerMarkerid)
} catch(e) {
if (!isNaN(translatemarkerMarkerid)) {
translatemarkerMarkerid = toNumber ? Number(translatemarkerMarkerid) : String(translatemarkerMarkerid)
}
}
const params = {}
translatemarkerMarkerid !== 'no' && (params.markerId = translatemarkerMarkerid)
translatemarker_marker_autoRotate !== 'no' && (params.autoRotate = translatemarker_marker_autoRotate)
translatemarker_rotate !== 'no' && (params.rotate = toNumber ? Number(translatemarker_rotate) : String(translatemarker_rotate))
translatemarker_duration !== 'no' && (params.duration = toNumber ? Number(translatemarker_duration) : String(translatemarker_duration))
translatemarker_marker_moveWithRotate !== 'no' && (params.moveWithRotate = translatemarker_marker_moveWithRotate)
destination !== 'no' && (params.destination = destination)
console.log('translateMarker 参数: ', params)
mapcontext.translateMarker(Object.assign({
animationEnd: (res) => {
console.log(`debug: translateMarker animationEnd `, res)
},
success: (res) => {
console.log(`debug: translateMarker succcess `, res)
},
fail: (res) => {
console.log(`debug: translateMarker fail `, res)
},
complete: (res) => {
console.log(`debug: translateMarker complete `, res)
}
}, params))
},
goBack () {
wx.redirectTo({
url: '/pages/jumppage/index',
})
},
latlongChange (e) {
// const {toNumber} = this.data
let latlong = e.detail.value
try {
if (latlong === '') {
latlong = ['','']
} else if (latlong === 'null') {
latlong = [null, null]
} else {
latlong = JSON.parse(e.detail.value)
}
} catch (e) {
latlong = [latlong, null]
}
console.log(latlong)
// const latitude = toNumber ? Number(latlong[0]) : String(latlong[0])
// const longitude = toNumber ? Number(latlong[1]) : String(latlong[1])
const latitude = latlong[0]
const longitude = latlong[1]
console.log(`改变latitude、longitude : ` )
console.log(latitude, longitude)
this.setData({
latitude,
longitude
})
},
chooseLocalImage () {
wx.chooseImage({
count: 1,
success: (res) => {
console.log(res)
this.setData({
markerIconPath: res.tempFilePaths[0],
controls_iconPath: res.tempFilePaths[0],
polyline_arrowIconPath: res.tempFilePaths[0],
markers_iconPath: res.tempFilePaths[0]
})
}
})
},
getstorepath () {
wx.saveFile({
tempFilePath: this.data.markerIconPath,
success: (res) => {
console.log(res)
this.setData({
markerIconPath: res.savedFilePath,
controls_iconPath: res.savedFilePath,
polyline_arrowIconPath: res.savedFilePath,
markers_iconPath: res.savedFilePath
})
}
})
},
getusrpath () {
wx.getFileSystemManager().saveFile({
tempFilePath: this.data.markerIconPath,
filePath: `${wx.env.USER_DATA_PATH}/markericon/test.jpg`,
success: (res) => {
console.log(res)
this.setData({
markerIconPath: res.savedFilePath,
controls_iconPath: res.savedFilePath,
polyline_arrowIconPath: res.savedFilePath,
markers_iconPath: res.savedFilePath
})
},
complete: (res) => {
console.log(res)
}
})
},
attributeKeyChange (e) {
const { toNumber } = this.data
const { attribute, defaultnum, orginalattribute } = e.target.dataset
let value = e.detail.value
const orginalval = e.detail.value
try {
value = JSON.parse(value)
} catch (e) {
if (defaultnum) {
value = toNumber ? (isNaN(value) ? value : Number(value)) : String(value)
}
}
if (typeof value === 'number' && !toNumber) {
value = String(value)
}
const obj = {}
obj[attribute] = value
orginalattribute && (obj[orginalattribute] = orginalval)
console.log('改变的属性: ', obj)
this.setData(obj)
},
showMap () {
this.setData({
mapShow: !this.data.mapShow
})
},
emitchooseLocation () {
wx.chooseLocation({
longitude: '85.1318117790985',
latitude: '45.69139458288415',
complete (res) {
console.log('chooseLocation complete ', res)
}
})
},
emitinvokeMapTask: function () {
wx.invokeMapTask({
complete: (res) => {
console.log(res)
}
})
},
emitchooseimage () {
wx.chooseImage({
count: 3,
// sizeType: 'original',
sourceType: ['album', 'camera'],
complete: function complete(res) {
console.log(res)
}
})
},
goPage () {
wx.navigateTo({
url: '/pages/mapmultiple/mapmultiple'
})
},
testundefined () {
this.setData({
latitude: undefined
})
}
})