vue如何使用腾讯地图JavaScript API GL进行打点标记

1.创建一个TMap.js文件
export function TMap0() {
return new Promise(function (resolve, reject) {
window.init = function () {
resolve(window.TMap)//注意这里
}
var script = document.createElement(“script”);
script.type = “text/javascript”;
script.src = “https://map.qq.com/api/gljs?v=1.exp&callback=init&key=”+‘EYOBZ-4XV6O-X75WV-SNZSM-ROXD7-IAFQB’; //EYOBZ-4XV6O-X75WV-SNZSM-ROXD7-IAFQB是你申请的key
script.onerror = reject;
document.head.appendChild(script);
})
}

2.我创建了一个shoplist.vue,我这个页面需要使用地图
script里面
import { TMap0 } from ‘@/common/js/TMap.js’ //导入TMap.js
// 然后下面就是我使用地图打点的业务逻辑
TMap0().then(TMap => {
var center = new window.TMap.LatLng(data2[0].latitude,data2[0].longitude);
var map = new window.TMap.Map(document.getElementById(“container”), {
// 地图的中心地理坐标
center: center,
//初始化地图缩放级别
zoom: 11
});

					//添加标记
					console.log('添加标记')
					for(let i=0;i<data2.length;i++){
						
						
 
						var marker = new window.TMap.MultiMarker({
						map: map,
						styles: {
						//创建一个styleId为"myStyle"的样式(styles的子属性名即为styleId)
						"myStyle": new window.TMap.MarkerStyle({ 
							"width": 32,  // 点标记样式宽度(像素)
							"height": 32, // 点标记样式高度(像素)
							"src": 'http://wx.huahejm.com/dangpu/web/dw.jpg',  //图片路径
							//焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点
							"anchor": { x: 0, y: 0 }  
						}) 
					},
					//点标记数据数组
					geometries: [{
						"id": i,   //点标记唯一标识,后续如果有删除、修改位置等操作,都需要此id
						"styleId": 'myStyle',  //指定样式id
						"position": new window.TMap.LatLng(data2[i].latitude,data2[i].longitude),  //点标记坐标位置
						"properties": {//自定义属性
							"title": "marker1"
						}
					}
					]	 
					})
					
						// var anchor = new window.TMap.Point(0, 0),
						// 			 size = new window.TMap.Size(32, 32),
						// 			 origin = new window.TMap.Point(0, 0),
						// 			 markerIcon = new window.TMap.MarkerImage(
						// 	 "../../../assets/images/tx.jpg",
						// 	 size,
						// 	 origin,
						// 	 anchor
						//  );
						//  marker.setIcon(markerIcon);
						 console.log('添加标记完成')
						//  marker.libraryName = data[i].name
					

					//初始化infoWindow
					var infoWindow = new  window.TMap.InfoWindow({
						map: map,
						position: new  window.TMap.LatLng(data2[i].latitude,data2[i].longitude),
						offset: { x: 0, y: -32 } //设置信息窗相对position偏移像素,为了使其显示在Marker的上方
					});

					infoWindow.close();//初始关闭信息窗关闭

					//监听标注点击事件
					marker.on("click", function (evt) {
						//设置infoWindow
						infoWindow.open(); //打开信息窗
						infoWindow.setPosition(new window.TMap.LatLng(data2[i].latitude,data2[i].longitude));//设置信息窗位置
						infoWindow.setContent('<div class="col" style="white-space:'+
				        'nowrap;margin:10px;"> <div>店铺:' + data2[i].name+ '</div><div >地址:' + data2[i].address+ '</div></div>');//设置信息窗内容
					})



				    // window.TMap.event.addListener(marker, 'click', function() {
				    //     infoWin.open();
				    //     infoWin.setContent('<div class="col" style="white-space:'+
				    //     'nowrap;margin:10px;"> <div>店铺:' + data[i].name+ '</div><div >地址:' + data[i].address+ '</div></div>');
				    //     //提示窗位置
				    //     infoWin.setPosition(new window.TMap.LatLng(data[i].latitude,data[i].longitude));
						
					// })
					

					}
				})
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript API GL集成到Vue.js应用程序中的过程与将其集成到任何其他Web应用程序中的过程类似。以下是一些简单的步骤: 1. 在Vue.js应用程序中安装JavaScript API GL。可以使用npm或yarn进行安装。同时,需要通过script标签引入腾讯地图JavaScript API。 ``` <script src="//map.qq.com/api/js?v=2.exp&key=[您申请的key值]&libraries=convertor"></script> ``` 2. 创建一个Vue.js组件,将JavaScript API GL集成到该组件中。可以在Vue.js组件的生命周期钩子中初始化地图并添加绘图代码。 ``` <template> <div ref="mapContainer" class="map-container"></div> </template> <script> export default { data() { return { map: null, drawingManager: null } }, mounted() { this.initMap(); this.initDrawingManager(); }, methods: { initMap() { const map = new qq.maps.Map(this.$refs.mapContainer, { center: new qq.maps.LatLng(39.916527, 116.397128), zoom: 13 }); this.map = map; }, initDrawingManager() { const drawingManager = new qq.maps.drawing.DrawingManager({ drawingMode: qq.maps.drawing.OverlayType.MARKER, drawingControl: true, drawingControlOptions: { position: qq.maps.ControlPosition.TOP_CENTER, drawingModes: [ qq.maps.drawing.OverlayType.MARKER, qq.maps.drawing.OverlayType.CIRCLE, qq.maps.drawing.OverlayType.POLYGON, qq.maps.drawing.OverlayType.POLYLINE, qq.maps.drawing.OverlayType.RECTANGLE ] }, circleOptions: { fillColor: qq.maps.Color.fromHex('#000000', 0.5), strokeColor: qq.maps.Color.fromHex('#000000', 0.8), strokeWeight: 2 } }); drawingManager.setMap(this.map); this.drawingManager = drawingManager; } } } </script> ``` 在这个例子中,我们创建了一个简单的Vue.js组件,用于在Web应用程序中集成JavaScript API GL。组件中包含一个div元素,用作地图容器。在组件的mounted生命周期钩子中,我们初始化了地图并添加了绘图代码。我们还添加了一个方法`initDrawingManager()`用于初始化绘图工具。 3. 在Vue.js组件中设置JavaScript API GL的属性和事件处理程序。这些属性和事件处理程序可用于控制绘图和响应用户的交互行为。 在这个例子中,我们在`initDrawingManager()`方法中设置了绘图工具的属性和事件处理程序。 希望这可以帮助您开始在Vue.js应用程序中使用JavaScript API GL腾讯地图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值