| | |
| | | <div class="map-container"> |
| | | <div class="map-content" id="map" ref="map"></div> |
| | | |
| | | |
| | | <div class="shadow"></div> |
| | | <!-- 图标菜单 --> |
| | | <div class="info-box"> |
| | | <!-- right菜单--> |
| | |
| | | |
| | | import { require } from '@/utils/require.js'; |
| | | |
| | | import icon1 from '@/assets/img/icon/icon1.png'; |
| | | import icon2 from '@/assets/img/icon/icon2.png'; |
| | | import icon3 from '@/assets/img/icon/icon3.png'; |
| | | import icon4 from '@/assets/img/icon/icon4.png'; |
| | | import icon5 from '@/assets/img/icon/icon5.png'; |
| | | import icon6 from '@/assets/img/icon/icon6.png'; |
| | | import icon7 from '@/assets/img/icon/icon7.png'; |
| | | import icon8 from '@/assets/img/icon/icon8.png'; |
| | | import icon9 from '@/assets/img/icon/icon9.png'; |
| | | |
| | | |
| | | const map = ref(null); |
| | | let mapInstance = null; |
| | |
| | | name: '事故易发多发路段', |
| | | num: 78, |
| | | type: 1, |
| | | icon: require('@/assets/img/sgyfd.png'), |
| | | icon: icon1, |
| | | positions: [[103.647593, 30.981856], [103.646627, 30.988235], [103.650077, 30.988074]], |
| | | isActive: false |
| | | }, |
| | |
| | | type: 2, |
| | | num: 178, |
| | | positions: [[103.647888, 30.985006], [103.650983, 30.986252], [103.641461, 30.984588]], |
| | | icon: require('@/assets/img/zdlytd.png'), |
| | | icon: icon2, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 278, |
| | | positions: [[103.637916, 30.986298], [103.636751, 30.989508], [103.64093, 30.99344]], |
| | | type: 3, |
| | | icon: require('@/assets/img/djyjq.png'), |
| | | icon: icon3, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 348, |
| | | positions: [[103.646413, 30.996714], [103.634337, 31.0026], [103.620841, 31.001253]], |
| | | type: 4, |
| | | icon: require('@/assets/img/jlpb.png'), |
| | | icon: icon4, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 578, |
| | | positions: [[103.62134, 30.996972], [103.622005, 30.991923], [103.63062, 30.986588]], |
| | | type: 5, |
| | | icon: require('@/assets/img/dwsg.png'), |
| | | icon: icon5, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 788, |
| | | positions: [[103.640319, 30.984486], [103.644916, 30.986956], [103.646853, 30.992143]], |
| | | type: 1, |
| | | icon: require('@/assets/img/jtysqy.png'), |
| | | icon: icon6, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 758, |
| | | positions: [[103.651482, 30.995956], [103.639654, 30.995206], [103.631119, 30.987425]], |
| | | type: 7, |
| | | icon: require('@/assets/img/zdlytd.png'), |
| | | icon: icon7, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 758, |
| | | positions: [[103.652716, 30.974745], [103.668166, 30.976447], [103.672511, 30.979961]], |
| | | type: 8, |
| | | icon: require('@/assets/img/gjxl.png'), |
| | | icon: icon8, |
| | | isActive: false |
| | | }, |
| | | { |
| | |
| | | num: 718, |
| | | positions: [[103.674056, 30.988625], [103.668155, 30.996379], [103.660333, 30.998098]], |
| | | type: 9, |
| | | icon: require('@/assets/img/aqyh.png'), |
| | | icon: icon9, |
| | | isActive: false |
| | | }, |
| | | |
| | |
| | | // 创建图标 |
| | | const createIcon = (img) => { |
| | | return new AMap.Icon({ |
| | | size: new AMap.Size(34, 41), // 图标尺寸 |
| | | // size: new AMap.Size(43.8, 49.2), // 图标尺寸 |
| | | image: img, // Icon的图像 |
| | | imageSize: new AMap.Size(34, 41) // 根据所设置的大小拉伸或压缩图片 |
| | | imageSize: new AMap.Size(43.8, 49.2) // 根据所设置的大小拉伸或压缩图片 |
| | | }); |
| | | } |
| | | |
| | |
| | | |
| | | trafficLayer.setMap(mapInstance); |
| | | |
| | | // test(); |
| | | // console.log(markers.value[0]); |
| | | // mapInstance.add(markers.value[0].markerList); |
| | | |
| | | const options = { |
| | | subdistrict: 0, |
| | | extensions: "all", |
| | | level: "district", |
| | | }; |
| | | |
| | | // 限制一个区域轮廓 |
| | | AMap.plugin("AMap.DistrictSearch", function () { |
| | | //在回调函数中实例化插件,并使用插件功能 |
| | | const district = new AMap.DistrictSearch(options); |
| | | district.search("都江堰市", (status, result) => { |
| | | const outer = [ |
| | | new AMap.LngLat(-360, 90, true), |
| | | new AMap.LngLat(-360, -90, true), |
| | | new AMap.LngLat(360, -90, true), |
| | | new AMap.LngLat(360, 90, true), |
| | | ]; |
| | | const holes = result.districtList[0].boundaries; |
| | | |
| | | const pathArray = [outer]; |
| | | pathArray.push.apply(pathArray, holes); |
| | | const polygon = new AMap.Polygon({ |
| | | pathL: pathArray, |
| | | //线条颜色,使用16进制颜色代码赋值。默认值为#006600 |
| | | strokeColor: "rgb(20,164,173)", |
| | | strokeWeight: 4, |
| | | //轮廓线透明度,取值范围[0,1],0表示完全透明,1表示不透明。默认为0.9 |
| | | strokeOpacity: 0.5, |
| | | //多边形填充颜色,使用16进制颜色代码赋值,如:#FFAA00 |
| | | fillColor: "rgba(0,0,0)", |
| | | //多边形填充透明度,取值范围[0,1],0表示完全透明,1表示不透明。默认为0.9 |
| | | fillOpacity: 1, |
| | | //轮廓线样式,实线:solid,虚线:dashed |
| | | strokeStyle: "solid", |
| | | /*勾勒形状轮廓的虚线和间隙的样式,此属性在strokeStyle 为dashed 时有效, 此属性在 |
| | | ie9+浏览器有效 取值: |
| | | 实线:[0,0,0] |
| | | 虚线:[10,10] ,[10,10] 表示10个像素的实线和10个像素的空白(如此反复)组成的虚线 |
| | | 点画线:[10,2,10], [10,2,10] 表示10个像素的实线和2个像素的空白 + 10个像素的实 |
| | | 线和10个像素的空白 (如此反复)组成的虚线*/ |
| | | strokeDasharray: [10, 2, 10], |
| | | }); |
| | | polygon.setPath(pathArray); |
| | | mapInstance.add(polygon); |
| | | }); |
| | | }); |
| | | |
| | | }) |
| | | .catch((e) => { |
| | | console.log(e); |
| | |
| | | height: 100%; |
| | | position: absolute; |
| | | z-index: 0; |
| | | box-shadow: inset 0px 0px 100px 18px #081729; |
| | | |
| | | .map-content { |
| | | width: 100%; |
| | |
| | | |
| | | .item-tb-img { |
| | | width: 20px; |
| | | height: 20px; |
| | | object-fit: contain; |
| | | margin-right: 5px; |
| | | } |
| | | |
| | | .info-div-p { |
| | |
| | | cursor: pointer; |
| | | |
| | | .item-tb-p { |
| | | font-family: PingFang SC; |
| | | font-family: 'PingFang SC'; |
| | | |
| | | font-weight: 400; |
| | | font-size: 16px; |
| | | color: #FFFFFF; |
| | | line-height: 42px; |
| | | } |
| | | } |
| | | |
| | | .shadow { |
| | | width: 100%; |
| | | height: 100%; |
| | | top: 0; |
| | | left: 0; |
| | | position: absolute; |
| | | box-shadow: inset 0px 0px 100px 120px #081729; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | :deep(.amap-logo) { |
| | | display: none !important; |
| | | } |
| | | |
| | | :deep(.amap-copyright) { |
| | | visibility: hidden !important; |
| | | } |
| | | </style> |