天地图添加覆盖线,并且点击出发弹窗事件

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8"/>

<script src="http://api.tianditu.gov.cn/api?v=4.0&tk=秘钥" type="text/javascript"></script>
<script type="text/javascript" src="http://api.tianditu.com/js/maps.js"></script>
<script src="http://t0.tianditu.gov.cn/vec_w/wmts?tk=秘钥" type="text/javascript"></script>
<script src="../14.5/static/js/jquery-3.6.4.min.js"></script>
</head>
<body style="background-color:#333333;"><div align="center" style="width:1920px;">
<div class="chart-container" id="791e3b8d32c34ee389ad805fcbd17f21" style="left:630px;top:120px;width:660px;height:606px;position:absolute"></div>
<script>
              var bmap = new T.Map('791e3b8d32c34ee389ad805fcbd17f21');
              var point = new T.LngLat(129.798891, 42.999593);
              bmap.centerAndZoom(point, 10);
              bmap.enableScrollWheelZoom(true);


/******************标记线添加修改方法一开始***********************/
            bmap.clearOverLays();
            points = [];
            points.push(new T.LngLat(129.838169, 42.874174));
            points.push(new T.LngLat(129.826575, 42.875641));
            var line = new T.Polyline(points);
            line.setColor("blue");
            bmap.addOverLay(line);
            var markerInfoWin = new T.InfoWindow('桩号:K001+000~K001+218<br>PCI:44.89(差)<br>RQI:60.52(次)<br>PQI:51.14(差)', {title:'C001'});
            line.addEventListener("click", function () {
                line.openInfoWindow(markerInfoWin);
            });

/******************标记线添加修改方法一结束***********************/
	
/******************标记线添加修改方法二开始***********************/

//线的一下基本配置
  var lineconfig={
		color: "#FB0008",            //线的颜色
		weight: 5,               //线的宽度
		opacity: 0.5,             //线的透明度
		lineStyle:"solid"        //线的样式
	};

//创建点对象集合并创建几个点放进集合中
    var points = new Array();
    points[0]=new T.LngLat(129.826575, 42.875641);
    points[1]=new T.LngLat(129.824873, 42.876674);

    var polyline_2 = new T.Polyline(points,lineconfig);//创建线条的对象

  //向地图上添加线
 bmap.addOverLay(polyline_2);

 //注册点击事件
var markerInfoWin = new T.InfoWindow('桩号:K001+000~K001+218<br>PCI:44.89(差)<br>RQI:60.52(次)<br>PQI:51.14(差)', {title:'C001'});
            polyline_2.addEventListener("click", function () {
                polyline_2.openInfoWindow(markerInfoWin);
            });
/******************标记线添加修改方法二结束***********************/
</script>
</body>

</html>

在OpenLayers中,当你想要在用户点击地图时动态地添加标记图片并显示相关信息的弹窗,可以按照以下步骤操作: 1. **初始化地图**: 首先,你需要加载OpenLayers库,并创建一个地图容器。例如: ```javascript var map = new ol.Map({ target: 'map', // 地图容器id layers: [your_layer], // 添加基础地图层 view: new ol.View({ center: [lon, lat], // 中心坐标 zoom: 8 // 初始缩放级别 }) }); ``` 2. **监听click事件**: 使用`map.on('click', function(event) { ... })`来监听地图点击事件。在这个回调函数里处理点击动作: ```javascript map.on('click', function(event) { // event.coordinate 是鼠标点击的位置 }); ``` 3. **添加标记和图片**: 在点击事件的回调中,你可以创建一个新的标记(marker)实例,附上图片: ```javascript var marker = new ol.Feature({ geometry: new ol.geom.Point(event.coordinate), properties: { imgUrl: 'path/to/your/image.png', // 图片URL popupContent: '<div>这里是弹窗内容</div>' // 弹窗HTML } }); var source = new ol.source.Vector({features: [marker]}); var layer = new ol.layer.Vector({ source: source, style: your_style_function(marker) // 样式函数根据需求定制 }); map.addLayer(layer); ``` 4. **显示弹窗**: 当标记被添加地图上时,可以利用OpenLayers的Popup组件来显示弹窗信息: ```javascript var popup = new ol.control.Popup(); map.addControl(popup); popup.showAt(event.coordinate, marker.getPopup().content); ``` 5. **样式定制**: `style_function(marker)` 可能需要自定义,以便调整标记的外观,比如颜色、图标等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值