123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- <template>
- <view>
- <cu-custom bgColor="bg-blue" :isBack="true" backUrl="/pages/indexcf/indexcf">
- <block slot="backText">返回</block>
- <block slot="content"> 地图可视化</block>
- </cu-custom>
- <!--绑定点击事件-->
- <!--地图容器-->
- <map id="myMap" :markers="markers" style="width: 100%;" :style="'height:' + windowHeight + 'px;'"
- :longitude="m_longitude" :latitude="m_latitude" scale='11' @markertap="markertap">
- <view class="cu-capsule radius capsule-custom" >
- <view class='cu-tag bg-blue' >
- 园区
- </view>
- <view class="cu-tag line-blue tag-custom" >
- 7个
- </view>
- </view>
- <cover-view class="cu-bar search" style="width: 51%;float: right; min-height: 35px;">
- <view class="search-form round" style="height: 30px; line-height: 30px; margin: 5px 5px 0px 0px;border: 1rpx solid #36A7F3;">
- <text class="cuIcon-search"></text>
- <input type="text" placeholder="厂区面积搜索" v-model="curWord" confirm-type="search" @input="inputWord"></input>
- </view>
- </cover-view>
- <br/>
- <view class="cu-capsule radius capsule-custom" >
- <view class='cu-tag bg-blue '>
- 厂房
- </view>
- <view class="cu-tag line-blue tag-custom">
- 360000㎡
- </view>
- </view>
- <br/>
- <view class="cu-capsule radius capsule-custom" >
- <view class='cu-tag bg-blue '>
- 楼宇
- </view>
- <view class="cu-tag line-blue tag-custom">
- 28栋
- </view>
- </view>
- <br/>
- <view class="cu-capsule radius capsule-custom" >
- <view class='cu-tag bg-blue '>
- 土地
- </view>
- <view class="cu-tag line-blue tag-custom">
- 54900亩
- </view>
- </view>
- </map>
- </view>
- </template>
- <script>
- // 引入SDK核心类
- var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
- // 实例化API核心类
- var qqmapsdk = new QQMapWX({
- key: '4OWBZ-KZICJ-PCPFK-XWKUM-FLKFJ-C5FI2' // 必填
- });
- import mapVisualizationService from '@/api/map/mapVisualization'
- export default {
- data() {
- return {
- windowHeight: uni.getSystemInfoSync().windowHeight - 45, //屏幕高度
- markers: [],
- m_longitude: 120.139726,
- m_latitude: 33.345562,
- currentWebview: '',
- webviewStyles: { // web-view样式
- width: "100%",
- height: "100%",
- top: 90,
- },
- curWord: "" ,//当前搜索关键词
- yqList: [
- {
- building_id: '1',
- building_name: "亭湖区电子信息产业园",
- site: "盐城市亭湖区南洋镇太湖路99号",
- distance: "10km",
- building_longitude: 120.232445,
- building_latitude: 33.430631,
- building_image: '../../static/img/th-park-1.jpg'
- },
- {
- building_id: '2',
- building_name: "睿思亭湖数字基地",
- site: "江苏省盐城市亭湖区中亭路9号力拓花园3幢",
- distance: "5.4km",
- building_longitude: 120.209738,
- building_latitude: 33.400009,
- building_image: '../../static/img/th-park-2.jpg'
- },
- {
- building_id: '3',
- building_name: "盐城环保产业园",
- site: "光伏路与经一路交叉口西北150米",
- distance: "13.4km",
- building_longitude: 120.269329,
- building_latitude: 33.440453,
- building_image: '../../static/img/th-park-3.jpg'
- },
- {
- building_id: '4',
- building_name: "江苏盐城光电产业园",
- site: "盐城市亭湖区青墩连接线与太湖路交叉路口往西南约90米",
- distance: "11km",
- building_longitude: 120.237555,
- building_latitude: 33.432122,
- building_image: '../../static/img/th-park-4.jpg'
- },
- {
- building_id: '5',
- building_name: "盐东镇科技产业园",
- site: "盐城市亭湖区利民村3组",
- distance: "22.2km",
- building_longitude: 120.355611,
- building_latitude: 33.473836,
- building_image: '../../static/img/th-park-5.jpg'
- },
- {
- building_id: '6',
- building_name: "兴泰(亭湖)产业园",
- site: "江苏省盐城市亭湖区瑞鹤路",
- distance: "14km",
- building_longitude: 120.275086,
- building_latitude: 33.44331,
- building_image: '../../static/img/th-park-6.jpg'
- },
- {
- building_id: '7',
- building_name: "江苏新青洋智能装备产业园",
- site: "江苏省盐城市亭湖区盐才路1号",
- distance: "16.3km",
- building_longitude: 120.192397,
- building_latitude: 33.468225,
- building_image: '../../static/img/th-park-7.jpg'
- },
- ],
- }
- },
- components: {},
- onReady() {
- },
- mounted() {
- this.getBuildingList()
- },
- methods: {
- // 输入监听
- inputWord(e){
- // this.curWord = e.detail.value // 已使用v-model,无需再次赋值
- // 节流,避免输入过快多次请求
- this.searchTimer && clearTimeout(this.searchTimer)
- this.searchTimer = setTimeout(()=>{
- this.doSearch(this.curWord)
- },300)
- },
- doSearch(sWord){
-
- },
- markertap(e) {
- // 获取点击的marker的customData
- let markerId = e.detail.markerId;
- let selectedMarker = this.markers.find(marker => marker.id === markerId);
- let customData = selectedMarker.customData
- uni.navigateTo({
- url: '/pages/map/parkShow?parkId=' + customData.buildingId +
- '&parkName=' + customData.buildingName +
- '&parkImage=' + customData.buildingImage
- });
- },
- convert2TecentMap(lng, lat) {
- if (lng == '' && lat == '') {
- return {
- lng: '',
- lat: ''
- }
- }
- var x_pi = 3.14159265358979324 * 3000.0 / 180.0
- var x = lng - 0.0065
- var y = lat - 0.006
- var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi)
- var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi)
- var qqlng = z * Math.cos(theta)
- var qqlat = z * Math.sin(theta)
- return {
- lng: qqlng,
- lat: qqlat
- }
- },
- //获取楼宇信息
- getBuildingList() {
- let data = this.yqList
- if (data != null && data.length > 0) {
- let mar_arr = []
- data.forEach((item, index) => {
- //百度坐标转腾讯
- let convertPoint = this.convert2TecentMap(item.building_longitude, item.building_latitude)
-
- mar_arr.push({
- id: index,
- title: item.building_name,
- longitude: convertPoint.lng,
- latitude: convertPoint.lat,
- iconPath: '/static/img/building_ph.png',
- width: 35,
- callout: {
- content: item.building_name,
- display: 'ALWAYS'
- },
- customData: {
- buildingId: item.building_id,
- buildingName: item.building_name,
- buildingImage: item.building_image
- }
- })
- })
- this.markers = mar_arr
- this.getCenterPoint(this.markers)
- }
- },
- //计算所有点的中心点
- getCenterPoint(markers) {
- let minLat = 90, maxLat = -90, minLng = 180, maxLng = -180;
- markers.forEach(marker => {
- if (marker.latitude < minLat) minLat = marker.latitude;
- if (marker.latitude > maxLat) maxLat = marker.latitude;
- if (marker.longitude < minLng) minLng = marker.longitude;
- if (marker.longitude > maxLng) maxLng = marker.longitude;
- });
-
- this.m_latitude = (minLat + maxLat) / 2
- this.m_longitude = (minLng + maxLng) / 2
- },
- }
- }
- </script>
- <style scoped lang="scss">
- .capsule-custom{
- margin: 5px 0px 0px 5px;
- box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
- }
- .tag-custom{
- background-color: #f3f3f3;
- }
- .input-box-search{
- margin-left: 20rpx;
- background: #fff;
- height: 60rpx;
- width: 420rpx;
- display: flex;
- align-items: center;
- border-radius: 30rpx;
- padding-left: 10rpx;
- margin-right: 20rpx;
- }
- </style>
|