日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高德地图 绘制 柱状图形

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高德地图 绘制 柱状图形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要注意清空柱狀圖形

<template><div class="contentBox"><div id="map"></div></div> </template> <script> import AMap from 'AMap'export default {data() {return {object3Dlayer: null,//柱狀圖}},methods: {setHomeMap(mapData, code) {//柱狀圖顏色設置const prismData = {height: 500,radius: 100,topColor: [1, 0.8, 0.4, 0.8],topFaceColor: [1, 0.8, 0.5, 0.8],//頂部bottomColor: [1, 0.72, 0, 0.8]};this.object3Dlayer = new AMap.Object3DLayer();this.map.add(this.object3Dlayer);this.offset = new AMap.Pixel(0, 0);//柱狀圖let center_3d = this.map.lngLatToGeodeticCoord('中心點坐標');this._createCylinder(center_3d, prismData, this.object3Dlayer);}, initMap() {if (!this.map) {this.map = new AMap.Map('map', {viewMode: '3D',pitch: 50,resizeEnable: true, zoom: 15.85, center: [121.536233, 31.172555], });this.map.setMapStyle("amap://styles/blue")}},_createCylinder(center, prismData, object3Dlayer) {//圓柱設置let segment = 32;//棱柱的形狀,圓let topColor = prismData.topColor;let topFaceColor = prismData.topFaceColor;let bottomColor = prismData.bottomColor;// let height = prismData.height;let setRadius = prismData.radius;this.cylinder = new AMap.Object3D.Mesh();let geometry = this.cylinder.geometry;let verticesLength = segment * 2;let path = [];for (let i = 0; i < segment; i += 1) {let angle = 2 * Math.PI * i / segment;let x = center.x + Math.cos(angle) * setRadius;let y = center.y + Math.sin(angle) * setRadius;path.push([x, y]);geometry.vertices.push(x, y, 0); //底部頂點geometry.vertices.push(x, y, -prismData.height); //頂部頂點geometry.vertexColors.push.apply(geometry.vertexColors, bottomColor); //底部顏色geometry.vertexColors.push.apply(geometry.vertexColors, topColor); //頂部顏色let bottomIndex = i * 2;let topIndex = bottomIndex + 1;let nextBottomIndex = (bottomIndex + 2) % verticesLength;let nextTopIndex = (bottomIndex + 3) % verticesLength;geometry.faces.push(bottomIndex, topIndex, nextTopIndex); //側面三角形1geometry.faces.push(bottomIndex, nextTopIndex, nextBottomIndex); //側面三角形2}// 構建頂面三角形,為了區分頂面點和側面點使用不一樣的顏色,所以需要獨立的頂點for (let i = 0; i < segment; i += 1) {geometry.vertices.push.apply(geometry.vertices, geometry.vertices.slice(i * 6 + 3, i * 6 + 6)); //底部頂點geometry.vertexColors.push.apply(geometry.vertexColors, topFaceColor);}let triangles = AMap.GeometryUtil.triangulateShape(path);let offset = segment * 2;for (let v = 0; v < triangles.length; v += 3) {geometry.faces.push(triangles[v] + offset, triangles[v + 2] + offset, triangles[v + 1] + offset);}this.cylinder.transparent = true; // 如果使用了透明顏色,請設置trueobject3Dlayer.add(this.cylinder);},},},mounted() {this.initMap();} } </script>

?

總結

以上是生活随笔為你收集整理的高德地图 绘制 柱状图形的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。