140 lines
4.4 KiB
JavaScript
140 lines
4.4 KiB
JavaScript
|
|
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
|
||
|
|
})
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
})
|
||
|
|
|