0 0

百度地图折线覆盖物变颜色0

您好!我现在需要动态改变百度地图折线的颜色,请问有什么解决方案吗?因为根据地图api,不能给折线设置一个例如id的属性,然后根据这个id去定位到该折线。如果有人有好的方案,麻烦您指教下,谢谢!
2014年1月02日 22:11

2个答案 按时间排序 按投票排序

0 0

采纳的答案

有多个你用个数组存起来不就好了么

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<title>改变覆盖物状态</title>
</head>
<body>
<div style="postion:absoulte;left:0;top:0;"><a href="javascript:change();">ChangeColor</a></div>
<div id="allmap">
</div>
</body>
</html>
<script type="text/javascript">

// 覆盖物全部放入自定义map,以id作为Key
var oVMap = new Map();

var map = new BMap.Map("allmap");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 13);
var polyline = new BMap.Polyline([
  new BMap.Point(116.399, 39.910),
  new BMap.Point(116.405, 39.920),
  new BMap.Point(116.425, 39.900)
], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
oVMap.put('polyline-1',polyline);

var polyline2 = new BMap.Polyline([
  new BMap.Point(116.499, 39.910),
  new BMap.Point(116.505, 39.920),
  new BMap.Point(116.525, 39.900)
], {strokeColor:"red", strokeWeight:6, strokeOpacity:0.5, id:'my_polyine'});
map.addOverlay(polyline2);
oVMap.put('polyline-2',polyline2);

var circle = new BMap.Circle(new BMap.Point(116.433, 39.915),500);
map.addOverlay(circle);
oVMap.put('circle-1',circle);


// 改变覆盖物状态
function change(){
	var temp;
	// 第一个折线颜色改为绿色
	temp = oVMap.get('polyline-1');
	if(temp){
		temp.setStrokeColor('green');
	}
	// 第二个折线颜色改为黄色
	temp = oVMap.get('polyline-2');
	if(temp){
		temp.setStrokeColor('yellow');
	}
	// 改变圆的半径
	temp = oVMap.get('circle-1');
	if(temp){
		temp.setRadius(700);
	}
}

// 自定义map
function Map(){
	 this.data = new Array();
	 // 添加
	 this.put = function(_key,_value){
		if(this.containsKey(_key)){
			this.remove(_key);
		}
		this.data.push({key:_key,value:_value});
	 };
	 // 取值
	 this.get = function(_key){
		var rtn = null;
		try
		{
			for(var i=0;i<this.data.length;i++){
				if(this.data[i].key==_key){
					rtn = this.data[i].value;
					break;
				}
			}
		}
		catch (e)
		{
			rtn = null;
		}
		return rtn;
	 };
	 // 删除
	 this.remove = function(_key){
		var btn = false;
		try
		{
			for(var i=0;i<this.data.length;i++){
				if(this.data[i].key == _key){
					this.data.splice(i,1);
					return true;
				}
			}
		}
		catch (e)
		{
			btn = false;
		}
		return btn;

	 };
	 // 判断是否存在key
	 this.containsKey = function(_key) {  
        var bln = false;  
        try {  
            for (i = 0; i < this.data.length; i++) {  
                if (this.data[i].key == _key) {  
                    bln = true;  
					break;
                }  
            }  
        } catch (e) {  
            bln = false;  
        }  
        return bln;  
    }
	// 清空
	this.clear = function(){
		this.data = new Array();
	}
}
</script>




2014年1月03日 15:04
0 0

在外面定义一个全局变量polyline

然后去代码里面实例化,需要改变折线颜色,改变polyline属性删除再添加

2014年1月03日 10:09

相关推荐

    百度地图js,输入经度纬度实现标点、折线、图,清除覆盖物,清除poi文字,测距,随意缩放地图大小

    百度地图的网页,调用百度地图api的javaScript,这里得创建自己的工单,申请自己的密钥key(申请的是浏览器端),通过输入经度纬度、线宽、线的颜色、线的透明度,实现百度地图的标点,折线,画图(注意:这里标点输入...

    百度地图几何覆盖物

    折线覆盖物用于表示路径或路线。我们可以使用`BMap.Polyline`类来创建折线。这个类需要一个包含多个点的数组作为参数,每个点都是`BMap.Point`对象。示例代码如下: ```javascript var points = [new BMap.Point...

    百度地图js版api几何图形绘制保存到数据库并展示

    在使用百度地图JavaScript API进行开发时,几何图形的绘制、保存到数据库以及后续的展示是常见的需求。这个项目涉及到的主要知识点包括地图API的使用、几何对象的创建与操作、数据交互以及前端展示技术。 首先,...

    vuebaidumap基于Vue2的百度地图组件库

    VueBaiduMap是一款专为Vue2框架设计的百度地图组件库,它允许开发者在Vue应用中无缝集成百度地图的功能,提供了丰富的地图操作和自定义功能。这个组件库旨在简化与百度地图API的交互,使开发者能够更加高效地构建...

    百度地图离线版Javascript API 2.0版

    3. **覆盖物**:除了标注,还可以添加各种形状和多边形,如圆、矩形、折线等,用于表示区域或路径。 4. **地理编码与反向地理编码**:这些功能将地址转换为坐标(反之亦然),使得开发者可以轻松地根据地址在地图上...

    百度地图调用学习示例

    这涉及到使用百度地图API来实现一系列功能,包括地图展示、标注管理、覆盖物创建以及交互式控件的添加。下面,让我们逐一了解这些知识点。 首先,百度地图API是百度提供的一种服务,它允许开发者在其网站或应用中...

    百度地图开放平台接口

    4. 覆盖物(BMap.Polygon, BMap.Polyline, BMap.Circle等):用于绘制多边形、折线、圆等图形。 5. 地理编码(Geocoding):将地址转换为坐标,反之亦然,是地图应用的基础。 6. 位置检索(PlaceSearch):提供地点...

    百度地图易懂案列

    在百度地图API中,我们可以创建不同类型的覆盖物,如Marker(标记)、InfoWindow(信息窗口)、Polygon(多边形)、Polyline(折线)等。通过设置覆盖物的位置、样式、事件监听等属性,可以丰富地图的表现力。例如,...

    百度地图示例

    8. **覆盖物与图标**:百度地图API支持自定义覆盖物,如圆、多边形、折线等,以及自定义图标,让地图展示更个性化。 9. **地理编码与反地理编码**:通过`BMap.Geocoder`,可以将地址转换为坐标(地理编码),或将...

    四个项目百度地图使用总结(内含所有代码及注释和相关功能的使用)全部来自项目积累总结

    除了标记,还有多种覆盖物类型,如折线(Polyline)、多边形(Polygon)、圆(Circle)等,可以用来绘制复杂的地理形状。 9. **地图动画效果**: 通过API提供的动画接口,可以实现标记平滑移动、旋转等效果,增加...

    基于 eCharts 的百度地图学生籍贯统计.zip

    - **覆盖物**:可以在地图上添加标记、信息窗口、多边形、圆等覆盖物,用于标注特定位置或区域。 - **地图事件**:监听用户在地图上的交互行为,如点击、拖拽等,实现交互功能。 - **地图图层**:支持卫星图、...

    百度地图API+Echarts

    在本文中,我们将深入探讨如何结合使用百度地图API与ECharts来实现动态的、交互式的Web地图应用。百度地图API是百度提供的一项服务,允许开发者将地图功能集成到自己的网站或应用中,而ECharts则是一款强大的数据...

    百度地图SDK v3.7.3

    开发者可以通过SDK提供的API接口,实现自定义地图服务,比如自定义地图瓦片、添加覆盖物动画效果等,增强地图的可玩性和实用性。 9. **兼容性和优化**: 百度地图SDK v3.7.3考虑了多种Android设备的兼容性,覆盖...

    选择地图示例_地图_uni自做地图_app小程序_uni-app地图选择_uni-app_

    3. **覆盖物(Overlays)**:覆盖物包括多边形、圆、折线等,可以用于区域划分、路径规划等场景。uni-app提供了丰富的API来创建和管理这些覆盖物。 4. **地图事件**:监听地图的点击、缩放、拖动等事件,可以实现...

    大数据可视化项目,集成百度地图,ECharts.zip

    百度地图API提供了地图、标注、覆盖物、地理编码、轨迹等多种服务,与ECharts结合,可以在地图上绘制出数据点,或者根据数据生成热力图,展示特定区域的数据密度。这对于地理分布广泛的大数据项目来说,是一种非常...

Global site tag (gtag.js) - Google Analytics