已知经纬度自动在地图上标点

需求

通过一个按钮,打开地图拿到这个显示的位置的经纬度,在地图上找到这个位置
在这里插入图片描述

在这里插入图片描述

给按钮绑定事件

这个事件需要打开对话框,并且拿到经纬度

<el-button type="primary" size="mini" plain @click="mapClick(projectData.lonLat)">查看位置</el-button>

实现这个方法

mapClick(lonLat){
      let num1 = new Array()
      num1 = lonLat.split(',')
      this.mapDialogVisible = true
      //打印出来的黑色数字是字符串,蓝色的才是数字
      const longitude = Number(num1[0])//经度
      const latitude = Number(num1[1])//纬度
      // 定义点标记对象
      this.$nextTick(() => {
        this.initMap(longitude,latitude)
      })
    }

这里进行解释一下:lonLat就是那个传过来的经纬度,在这里需要将他拆分字符串,用到了split这个方法,是js里的; this.mapDialogVisible = true这个就是打开对话框,再将拆分的字符串转化成数字赋值给longitude和latitude,那个this.initMap就是实例化这个地图

实例化地图组件

如果不实例化地图的话,是展示不出地图的,
在上面写那个方法的时候我们将经纬度传过来了,所以在这里直接lng,lat进行接收,记得在return中初始化这个地图
在这里插入图片描述
使这个初始化地图的中心点设置为传过来的经纬度,这样就可以随着你经纬度的不同,展示的地图的位置也会随之改变,下面那个projectMapMarker就是一个标点的marker,官网里是有说明的,高德地图点标记官网
在这里插入图片描述

initMap(lng,lat) {
      this.mapLocal = new AMap.Map("container", {
        resizeEnable: true,
        //禁止拖动地图
        // dragEnable: false,
        //禁止放大地图
        // zoomEnable:false,
        center: [lng,lat],
        zoom: 16,//地图显示的缩放级别
      })
      const projectMapMarker =  new AMap.Marker({
        position: [lng, lat],
        icon: 'https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
      })
      // 添加点标记在地图上
      projectMapMarker.setMap(this.mapLocal)
    },

最后是通过官网的一个setMap方法将我们建立的点,标记在地图上,这样就做好了这样的效果。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是在Rstudio中利用已知经纬度的5类共700个数据在世界地图上进行标点的代码: 1. 首先需要安装相关包,如ggplot2、maps、mapproj等,可以通过如下代码进行安装: ```r install.packages(c("ggplot2", "maps", "mapproj")) ``` 2. 加载相关包 ```r library(ggplot2) library(maps) library(mapproj) ``` 3. 准备数据。假设我们的数据框名为`data`,其中包含5个类别的数据,每个类别有不同数量的标点,每个标点包含`longitude`和`latitude`两个变量,用于表示经度和纬度。 ```r # 准备数据 data <- data.frame( category = rep(LETTERS[1:5], times = c(140, 140, 140, 140, 140)), longitude = runif(700, min = -180, max = 180), latitude = runif(700, min = -90, max = 90) ) ``` 4. 绘制世界地图 ```r # 绘制世界地图 world_map <- map_data("world") ggplot() + geom_polygon(data = world_map, aes(x = long, y = lat, group = group), fill = "white", color = "gray") ``` 5. 添加标点。为了让不同类别的标点颜色不同,我们可以使用`scale_color_manual`函数来指定颜色。同时,我们可以使用`geom_point`函数来添加标点,并在其中使用`aes`函数来指定`longitude`和`latitude`变量,以及`category`变量用于颜色分类。 ```r # 添加标点 ggplot() + geom_polygon(data = world_map, aes(x = long, y = lat, group = group), fill = "white", color = "gray") + geom_point(data = data, aes(x = longitude, y = latitude, color = category), size = 2) + scale_color_manual(values = c("red", "green", "blue", "orange", "purple")) ``` 最终的代码如下: ```r # 加载包 library(ggplot2) library(maps) library(mapproj) # 准备数据 data <- data.frame( category = rep(LETTERS[1:5], times = c(140, 140, 140, 140, 140)), longitude = runif(700, min = -180, max = 180), latitude = runif(700, min = -90, max = 90) ) # 绘制世界地图 world_map <- map_data("world") ggplot() + geom_polygon(data = world_map, aes(x = long, y = lat, group = group), fill = "white", color = "gray") + # 添加标点 geom_point(data = data, aes(x = longitude, y = latitude, color = category), size = 2) + scale_color_manual(values = c("red", "green", "blue", "orange", "purple")) ``` 注:由于标点数据是随机生成的,因此每次运行代码得到的结果可能不同。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小莉爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值