美文网首页
vue项目中使用高德地图行政区域聚合功能(script引入方式)

vue项目中使用高德地图行政区域聚合功能(script引入方式)

作者: 魔都怪兽 | 来源:发表于2021-12-10 22:01 被阅读0次

    ## 步骤一 :引入高德js资源

    ```javascript

    <script type="text/javascript" src="//webapi.amap.com/maps?v=1.4.15&key=你的Key&plugin=AMap.DistrictSearch"></script>

    <script src="//webapi.amap.com/ui/1.1/main.js"></script>

    ```

    ## 步骤二:配置build文件

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/962bd57938e2402096fff1966f2208bc.png)

    conf.js中写入这段代码,防止报错AMapUI is not defined

    ```javascript

      externals: {

              'AMap': 'AMap',

              'Loca': 'Loca',

              'AMapUI': 'AMapUI'

            },

    ```

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/345ed75356be4cd7ae2d8db6a95bf4a3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56ys4pGm5Liq5YmN56uv,size_20,color_FFFFFF,t_70,g_se,x_16)

    在这个位置插入。

    ## 步骤三:具体页面代码

    ```javascript

    <template>

        <div class="map_mainer"

            id="map_mainer">

        </div>

    </template>

    <script>

    export default {

        data() {

            return {

                theMap: '', // 地图底图

                currentZoom: 5, // 当前zoom ,默认的

                currentLong: '105', // 经度

                currentLat: '34', // 纬度 默认为地图中间

            }

        },

        methods: {

            // 加载地图底图

            initMap() {

                let that = this

                that.theMap = new AMap.Map('map_mainer', {

                    zoom: that.currentZoom, //级别

                    center: [that.currentLong, that.currentLat], //中心点坐标

                    viewMode: '2D', //使用2D视图

                    mapStyle: 'amap://styles/decdde610cd872dee20dfe59ef5a894f', // 地图底图样式

                })

                AMapUI.loadUI(['geo/DistrictCluster'], function (DistrictCluster) {

                    //启动页面

                    that.initPage(DistrictCluster)

                })

                // // 将海量点添加至地图实例

                // massMarks.setMap(that.theMap)

            },

            initPage(DistrictCluster) {

                let that = this

                var distCluster = new DistrictCluster({

                    map: that.theMap, //所属的地图实例

                    //返回数据项中的经纬度位置

                    getPosition: function (item) {

                        return item.position

                    },

                })

                //随机创建一批点,仅作示意

                var data = that.createPoints(that.theMap.getCenter(), 100000)

                //设置数据

                distCluster.setData(data)

            },

            createPoints(center, num) {

                var data = []

                console.log('center', center)

                for (var i = 0, len = num; i < len; i++) {

                    data.push({

                        position: [

                            center.getLng() +

                                (Math.random() > 0.5 ? 1 : -1) * Math.random() * 30,

                            center.getLat() +

                                (Math.random() > 0.5 ? 1 : -1) * Math.random() * 20,

                        ],

                    })

                }

                return data

            },

        },

        created() {},

        mounted() {

            this.initMap()

        },

    }

    </script>

    <style lang="scss" scoped>

    @import './index.scss';

    </style>

    ```

    有问题可以QQ群654746915交流。

    ```javascript

    654746915

    ```

    相关文章

      网友评论

          本文标题:vue项目中使用高德地图行政区域聚合功能(script引入方式)

          本文链接:https://www.haomeiwen.com/subject/gdehfrtx.html