const { $Toast } = require('../../dist/base/index'); Component({ behaviors: [], properties: {}, data: { cbfbm: '', dkList: [], dkDetails: {}, longitude: '', latitude: '', polygons: [{ points: [],//给个空数组在页面刚开始渲染的时候会报错,但是不影响使用 fillColor: "#ffff00", strokeColor: "#00B277", strokeWidth: 2, zIndex: 1 }] }, // 私有数据,可用于模板渲染 lifetimes: { // 生命周期函数,可以为函数,或一个在 methods 段中定义的方法名 attached: function () { this.cbfbm = getApp().globalData.cbfbm this.initMap() this.getListData() }, moved: function () { }, detached: function () { }, }, pageLifetimes: { // 组件所在页面的生命周期函数 show: function () { }, hide: function () { }, resize: function () { }, }, methods: { initMap(){ let that = this wx.getLocation({ type: 'gcj02', //返回可以用于wx.openLocation的经纬度 highAccuracyExpireTime:4000, success: function(res) { // that.setData({ // longitude: res.longitude, // latitude: res.latitude // }) } }) }, getListData(){ var that = this; let url = getApp().globalData.API + '/api/LandContract/GetCbfData' let param = { cbfbm: this.cbfbm } wx.request({ url: url, data: param, method: 'GET', header: { 'content-type': 'application/json' // 默认值 }, success (res) { let rel = res.data.result.dk_list let arr = [] let pos = [] that.setData({ dkList: rel, dkDetails: rel[0] }) rel.forEach(item =>{ item.point_list.forEach(val =>{ pos.push({ latitude: that.wgs84togcj02(val.lat, val.lng)[0], longitude: that.wgs84togcj02(val.lat, val.lng)[1] }) }) arr.push({ points: pos, fillColor: "rgba(64,246,9,0.6)", strokeColor: "#00B277", strokeWidth: 2, zIndex: 1 }) that.setData({ longitude: that.wgs84togcj02(item.point_list[0].lat, item.point_list[0].lng)[1], latitude: that.wgs84togcj02(item.point_list[0].lat, item.point_list[0].lng)[0], }) }) that.setData({ polygons: arr }) } }) }, wgs84togcj02(lng, lat) { let that = this var circlepi = 3.1415926535897932384626, lengtha = 6378245.0,lengthee = 0.00669342162296594323 let dlat = this.transformlat(lng - 105.0, lat - 35.0,circlepi) let dlng = this.transformlng(lng - 105.0, lat - 35.0,circlepi) let radlat = lat / 180.0 * circlepi let magic = Math.sin(radlat) magic = 1 - lengthee * magic * magic let sqrtmagic = Math.sqrt(magic) dlat = (dlat * 180.0) / ((lengtha * (1 - lengthee)) / (magic * sqrtmagic) * circlepi) dlng = (dlng * 180.0) / (lengtha / sqrtmagic * Math.cos(radlat) * circlepi) let mglat = lat + dlat let mglng = lng + dlng return [mglng, mglat] }, transformlat(lng, lat,circlepi) { let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng)) ret += (20.0 * Math.sin(6.0 * lng * circlepi) + 20.0 * Math.sin(2.0 * lng * circlepi)) * 2.0 / 3.0 ret += (20.0 * Math.sin(lat * circlepi) + 40.0 * Math.sin(lat / 3.0 * circlepi)) * 2.0 / 3.0 ret += (160.0 * Math.sin(lat / 12.0 * circlepi) + 320 * Math.sin(lat * circlepi / 30.0)) * 2.0 / 3.0 return ret }, transformlng(lng, lat,circlepi) { let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng)) ret += (20.0 * Math.sin(6.0 * lng * circlepi) + 20.0 * Math.sin(2.0 * lng * circlepi)) * 2.0 / 3.0 ret += (20.0 * Math.sin(lng * circlepi) + 40.0 * Math.sin(lng / 3.0 * circlepi)) * 2.0 / 3.0 ret += (150.0 * Math.sin(lng / 12.0 * circlepi) + 300.0 * Math.sin(lng / 30.0 * circlepi)) * 2.0 / 3.0 return ret }, dkclick(e){ this.setData({ dkDetails: e.currentTarget.dataset.url }) }, } })