vue3使用天地图创建标记点

最近开发的项目要求使用天地图,之前没有接触过,研究一番就开始制作了,挺容易上手的,直接看效果吧

 引入方面就不在细说了

直接看标记点代码

//这是一个点击事件
const allmarker = () => {
      var arrs = [ ];//这里面写自己的坐标数据(经纬度)
//设置图标样式尺寸
      var icon = new T.Icon({
        iconUrl: "https://cdn-icons-png.flaticon.com/512/1483/1483336.png",
        iconSize: new T.Point(30, 30),
        iconAnchor: new T.Point(10, 56),
      });
//循环坐标数组,创建标记点
      arrs.forEach((item, index) => {
        let markers = new T.Marker(new T.LngLat(item[0], item[1]), {
//item[0]是经度,item[1]是纬度
          icon: icon,
        });
        wxMap.addOverLay(markers);
//执行标记点函数
        addwindowclick(markers, index);
      });
    };

点击标记点出现弹窗

let addwindowclick = (marker, i) => {
      marker.addEventListener("click", function (e) {
//点击坐标点切换中心点(可以不写)
        Longitude.value = marker.or.lng;
        Latitude.value = marker.or.lat;
        wxMap.centerAndZoom(
          new T.LngLat(Longitude.value, Latitude.value),
          zoom.value
        );
//下面的步骤必须写
        var point = e.lnglat;
        // 创建信息窗口对象
        var markerInfoWin = new T.InfoWindow();
        var sContent = `
        <div id="win_box">
          //自定义窗体内容
		</div>`;
//设置信息窗口要显示的内容
        markerInfoWin.setContent(sContent);
//setOffset设置信息浮窗显示时向右下角偏移量(像素)。-30则代表向上偏移
        markerInfoWin.setOffset(new T.Point(0, -15));
//开启信息窗口
        wxMap.openInfoWindow(markerInfoWin, point);

 功能就是这样,更多方法可以认真分析官方示例中心

天地图示例中心icon-default.png?t=M666http://lbs.tianditu.gov.cn/api/js4.0/examples.html

文章仅限参考 如有错误请及时指出或补充

Vue3 中引入地图添加标记通常会结合使用 ECharts 或 Leaflet 这样的地图库,它们都提供 API 来在网页上展示地理位置信息并添加标记。以下是简单的步骤: 1. **安装依赖**:首先,你需要安装 Vue 的版本以及地图组件库。例如,你可以使用 `vue2-leaflet` (Leaflet) 或者 `echarts-for-vue` (ECharts)。安装命令如下: ``` npm install vue2-leaflet leaflet echarts-for-vue --save ``` 2. **配置入口**:在项目中引入地图相关的 CSS 和 JS 文件,并在主入口文件中导入它们,如: ```javascript import { Map } from 'vue2-leaflet'; import 'leaflet/dist/leaflet.css'; import 'leaflet.markercluster/dist/MarkerCluster.css'; ``` 3. **创建组件**:在 Vue 组件中,使用 `v-leaflet` 或 `<map>` 标签创建地图容器,并配置基础地图设置: ```html <template> <div> <map :center="mapCenter" :zoom="mapZoom"> <!-- 更多地图配置如图层、事件监听等 --> </map> </div> </template> <script> export default { data() { return { mapCenter: [51.505, -0.09], // 北京坐标示例 mapZoom: 10, }; }, components: { Map: Map, }, }; </script> ``` 4. **添加标记**:可以使用 Leaflet 的 Marker 对象来添加标记,或者使用 ECharts 提供的 GeoCoord系数组来表示地理坐标,并在其图表上显示标记。例如: ```javascript this.$refs.map.addLayer(L.marker([yourLatitude, yourLongitude]).addTo(this.$refs.map)); ``` 5. **交互和数据绑定**:通过地图组件提供的事件监听器,可以在用户标记地图区域时获取经纬度,并与数据源进行关联。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值