|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<view class="service-main">
|
|
|
- <map @markertap='markertapFn' class="my_app" id="myMap" :longitude="myLocation.longitude"
|
|
|
+ <!-- <map @markertap='markertapFn' class="my_app" id="myMap" :longitude="myLocation.longitude"
|
|
|
:latitude="myLocation.latitude" :scale="18" show-location enable-3D show-compass enable-overlooking
|
|
|
:enable-satellite="false" :markers="markers" :polyline="polylines" :enable-traffic="false"
|
|
|
style="width: 100%; height: calc(50vh - 0rpx)">
|
|
@@ -9,7 +9,12 @@
|
|
|
{{ item.available_cnt }}
|
|
|
</cover-view>
|
|
|
</block>
|
|
|
- </map>
|
|
|
+ </map> -->
|
|
|
+ <view id="container">
|
|
|
+ <view style="width: 100%; height: calc(50vh - 0rpx)" id="mapModule" :prop="nearShopList"
|
|
|
+ :change:prop="mapModule.update" :lngLat="renderLngLat" :change:lngLat="mapModule.initAmap"
|
|
|
+ :curLngLat="curLngLat" :change:curLngLat="mapModule.loadPanTo"></view>
|
|
|
+ </view>
|
|
|
<!-- 地图控件 -->
|
|
|
<cover-view :class="[
|
|
|
'control-icon-view',
|
|
@@ -79,6 +84,11 @@
|
|
|
import {
|
|
|
LEASE_TYPE_ARR
|
|
|
} from '@/common/constant.js'
|
|
|
+
|
|
|
+ var transform = require('../../common/transform.js');
|
|
|
+ var meMarker = []
|
|
|
+ var polylinePath = null
|
|
|
+
|
|
|
const SHOPSELECTIMG = `https://qiniu.bms16.com/FkS7hjd6tl6ydLIi9-SQI0vGboMW`
|
|
|
const CABINET_ICON_URL =
|
|
|
"https://zxappfile.bms16.com/zx_client/shop_mark.png";
|
|
@@ -88,6 +98,9 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ curLngLat: {},
|
|
|
+ map:{},
|
|
|
+ nearShopList: [],
|
|
|
activeMarkersId: 0,
|
|
|
myLocation: {
|
|
|
latitude: 23.099994,
|
|
@@ -139,6 +152,136 @@
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
+ moveToLocation: function() {
|
|
|
+ const that = this;
|
|
|
+ uni.getLocation({
|
|
|
+ // type: 'gcj02',
|
|
|
+ success: function(res) {
|
|
|
+ that.setData({
|
|
|
+ myLocation: {
|
|
|
+ longitude: res.longitude,
|
|
|
+ latitude: res.latitude
|
|
|
+ },
|
|
|
+ centerLocation: {
|
|
|
+ longitude: res.longitude,
|
|
|
+ latitude: res.latitude
|
|
|
+ },
|
|
|
+ curLngLat: {
|
|
|
+ time: new Date().valueOf(),
|
|
|
+ longitude: res.longitude,
|
|
|
+ latitude: res.latitude
|
|
|
+ }
|
|
|
+ });
|
|
|
+ storage.setUserCurrentLocation(that.myLocation);
|
|
|
+ that.mapCtx.moveToLocation();
|
|
|
+ that.setData({
|
|
|
+ showShopInfo: false,
|
|
|
+ isIcShow: false,
|
|
|
+ scale: 14
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail: function(res) {
|
|
|
+ console.log(res)
|
|
|
+ common.simpleToast(JSON.stringify(res));
|
|
|
+ // common.simpleToast(that.$t('获取地址失败,请授权重新打开'));
|
|
|
+ },
|
|
|
+ complete: function(res) {}
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ initAmap(lngLat, _, ownerInstance) {
|
|
|
+ console.log('谷歌跑通')
|
|
|
+ lngLat = {
|
|
|
+ lat: lngLat.latitude,
|
|
|
+ lng: lngLat.longitude
|
|
|
+ }
|
|
|
+ lngLat = transform.wgs_gcj_encrypts(lngLat)
|
|
|
+ // lngLat = transform.gcj_wgs_encrypts(lngLat)
|
|
|
+ // console.log(lngLat, "坐标系lngLat")
|
|
|
+ let _this = this
|
|
|
+ const script = document.createElement('script')
|
|
|
+ script.src =
|
|
|
+ 'https://map.gpsall.cc/maps/api/js?key=AIzaSyA70JUgslynjmVv0NPz3hcvkTbPZpr2i_c&callback=initMap&libraries=&v=weekly'
|
|
|
+ window.initMap = function() {
|
|
|
+ setTimeout(() => {
|
|
|
+ _this.loadAmap(lngLat)
|
|
|
+ }, 1500);
|
|
|
+ };
|
|
|
+ document.head.appendChild(script)
|
|
|
+ },
|
|
|
+ loadAmap(lngLat) {
|
|
|
+ let _this = this
|
|
|
+ var myOptions = {
|
|
|
+ center: {
|
|
|
+ lat: parseFloat(lngLat.latitude),
|
|
|
+ lng: parseFloat(lngLat.longitude)
|
|
|
+ },
|
|
|
+ zoom: 16,
|
|
|
+ panControl: false,
|
|
|
+ zoomControl: false,
|
|
|
+ scaleControl: false,
|
|
|
+ streetViewControl: false
|
|
|
+ }
|
|
|
+ _this.map = new google.maps.Map(document.getElementById("mapModule"), myOptions);
|
|
|
+ // const marker = new google.maps.Marker({
|
|
|
+ // position: {
|
|
|
+ // lat: parseFloat(lngLat.latitude),
|
|
|
+ // lng: parseFloat(lngLat.longitude)
|
|
|
+ // },
|
|
|
+ // icon: {
|
|
|
+ // url: "https://zxappfile.bms16.com/zx_client/red.png",
|
|
|
+ // scaledSize: new google.maps.Size(10, 10)
|
|
|
+ // },
|
|
|
+ // map: _this.map
|
|
|
+ // });
|
|
|
+ //地图绑定事件
|
|
|
+ new google.maps.event.addListener(_this.map, "click", function(event) {
|
|
|
+ _this.$ownerInstance.callMethod('bindTapMap')
|
|
|
+ });
|
|
|
+ console.log("render初始化数据")
|
|
|
+ _this.$ownerInstance.callMethod('loadInitData')
|
|
|
+ },
|
|
|
+ loadPanTo(lngLat, _, ownerInstance) {
|
|
|
+ lngLat = {
|
|
|
+ lat: lngLat.latitude,
|
|
|
+ lng: lngLat.longitude
|
|
|
+ }
|
|
|
+ console.log("lngLat", lngLat)
|
|
|
+ lngLat = transform.wgs_gcj_encrypts(lngLat)
|
|
|
+ console.log("lngLat", lngLat)
|
|
|
+
|
|
|
+ this.map.panTo(new google.maps.LatLng(lngLat.latitude, lngLat.longitude))
|
|
|
+ },
|
|
|
+ update(newValue, _, ownerInstance) {
|
|
|
+ // console.log("newValue新数据")
|
|
|
+ // console.log(newValue)
|
|
|
+ // const _this = this
|
|
|
+ // _this.nearShopList = newValue
|
|
|
+ // for (var i = 0; _this.markersArray.length > i; i++) {
|
|
|
+ // _this.markersArray[i].setMap(null);
|
|
|
+ // }
|
|
|
+ // for (var i = 0; _this.nearShopList.length > i; i++) {
|
|
|
+ // var nearShop = _this.nearShopList[i]
|
|
|
+ // const marker = new google.maps.Marker({
|
|
|
+ // id: nearShop.id,
|
|
|
+ // map: _this.map,
|
|
|
+ // data: nearShop,
|
|
|
+ // title: "",
|
|
|
+ // position:new google.maps.LatLng( parseFloat(nearShop.latitude), parseFloat(nearShop.longitude)),
|
|
|
+ // icon: {
|
|
|
+ // url: nearShop.iconPath,
|
|
|
+ // size: new google.maps.Size(30, 32),
|
|
|
+ // scaledSize: new google.maps.Size(30, 32)
|
|
|
+ // },
|
|
|
+ // zIndex: 20
|
|
|
+ // });
|
|
|
+ // _this.markersArray.push(marker)
|
|
|
+ // google.maps.event.addListener(marker, 'click', (event) => {
|
|
|
+ // console.log(JSON.stringify(marker.data))
|
|
|
+ // _this.loadMarkertap(ownerInstance, marker.data)
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ },
|
|
|
markertapFn(e) {
|
|
|
let markerId = e.markerId
|
|
|
if (markerId == 5000) return
|