覆盖物

  • Marker: 标注表示地图上的点,可自定义标注的图标。
  • Label: 表示地图上的文本标注,您可以自定义标注的文本内容。
  • Polyline: 表示地图上的折线。
  • Polygon: 表示地图上的多边形。多边形类似于闭合的折线,另外您也可以为其设置填充颜色。
  • Circle: 表示地图上的圆。
  • InfoWindow: 表示信息窗口,也是一种特殊的覆盖物,它可以展示更为丰富的文字和多媒体信息。需要注意的是,同一时刻只能有一个信息窗口在地图上打开。

Marker

点标注

var marker = new AMap.Marker({
id:"m",
position: new AMap.LngLat(116.40632629394531, 39.90394233735701),
offset: new AMap.Pixel(-8,-34),
icon: "http://webapi.amap.com/static/images/marker_sprite.png"
});// 自定义构造AMap.Marker对象
mapObj.addOverlays(marker); //加载覆盖物

复杂点标注

var marker = new AMap.Marker({
    id:"m24",//唯一ID
    position:new AMap.LngLat(116.37388157654,39.907409934248),//基点位置
    offset:new AMap.Pixel(-14,-34),//相对于基点的位置
    icon:new AMap.Icon({  //复杂图标
        size:new AMap.Size(27,36),//图标大小
        image:"http://webapi.amap.com/static/images/custom_a_j.png", //大图地址
        imageOffset:new AMap.Pixel(-28,0)//相对于大图的取图位置
    })
});
mapObj.addOverlays(marker);

自定义点标注

…
/* 定义自定义点样式 */
div.marker{height:40px;background:url(http://pages.haozu.ajkcdn.com/20110909/img/map/marker.png)
left top no-repeat;}
div.marker div{height:28px;line-height:28px;margin:0 10px;color:#FFF;background:
url(http://pages.haozu.ajkcdn.com/20110909/img/map/marker_bg_170x28.gif) right top no-repeat;
padding-right:10px;}

/* 修改背景URL */
div.change{background-image:url(http://pages.haozu.ajkcdn.com/20110909/img/map/marker-h.png);}
div.change div{background-image:url(http://pages.haozu.ajkcdn.com/20110909/img/map/marker-h-l.gif);}
…
…
//自定义覆盖物dom元素
    var m = document.createElement("div");
    m.className = "marker";
    var n = document.createElement("div");
    n.innerHTML = "Amap";
    m.appendChild(n);

    var marker = new AMap.Marker({
        id:"m225",
        position:new AMap.LngLat(116.37388157654,39.907409934248),//基点位置
        offset:new AMap.Pixel(0,-40),//相对于基点的偏移位置
        //draggable:true, //是否可拖动
        content:m //自定义覆盖物内容
    });
    mapObj.addOverlays(marker);  //添加到地图
    //mouseover,换个皮肤
    mapObj.bind(marker,"mouseover",function(){
        n.innerHTML = "高德软件";//修改内容
        m.className = "marker change";//增加样式
    });
    //mouseout,换回皮肤
    mapObj.bind(marker,"mouseout",function(){
        n.innerHTML = "Amap";//修改内容
        m.className = m.className.replace(" change","");
    });

Label 文本标注

    var marker = new AMap.Marker({
        id:"m225",
        position:new AMap.LngLat(116.373881,39.907409), //基点位置
        offset:new AMap.Pixel(0,0), //相对于基点的偏移位置
        //draggable:true,  //是否可拖动
        content:m   //自定义覆盖物内容
    });
  mapObj.addOverlays(marker);     //添加到地图

InfoWindow 提示框

//构建点对象
    var marker = new AMap.Marker({
        id:"m23",//唯一ID
        position:new AMap.LngLat(116.37388157654,39.907409934248),
        icon:"http://webapi.amap.com/static/images/marker_sprite.png", //marker图标,直接传递地址url
        offset:{x:-8,y:-34}  //相对于基点的位置
    });
    mapObj.addOverlays(marker);//将点添加到地图

    var info = [];
    info.push("  高德软件");
    info.push("  电话 : 010-84107000   邮编 : 100102");
    info.push("  地址 : 北京市望京阜通东大街方恒国际中心A座16层");

    var inforWindow = new AMap.InfoWindow({
        offset:new AMap.Pixel(45,-34),
        content:info.join("")
    });
   marker.on(‘mouseover‘,openInfo);
    marker.on(‘mouseout‘,closeInfo);
    function openInfo(e) {
        infoWindow.open(mapObj,e.lnglat);
    }
    function closeInfo(){
        infoWindow.close();
    }

自定义信息窗口

//定义InfoWindow()方法,包括信息窗口显示外观和信息窗口的内容
function InfoWindow(title,content){
var bg = "http://webapi.amap.com/static/images/info_01.png";
var m = [];
m.push(‘<div style="height:30px;position:relative;z-index:104;overflow:hidden;">‘);
m.push(‘<div style="width:8px;height:30px;background:url(‘+bg+‘) 0px 0px;
position:absolute;left:0;top:0;overflow:hidden;"></div>‘);
//信息窗体头部样式更改
m.push(‘<div style="position:relative;height:29px;border-top:#BBCCD3 solid 1px;
margin:0px 8px 1px 8px;background-color:#BBCCD3;overflow:hidden;font-size:14px;line-height:29px;
color:#333333">‘+title+‘</div>‘);
m.push(‘<div style="width:8px;height:30px;background:url(‘+bg+‘) -8px 0px;
position:absolute;right:0;top:0;overflow:hidden;"></div>‘);
m.push(‘<div style="position:absolute;width:7px;height:7px;background:url(‘+bg+‘) -25px -35px;right:8px;
top:11px;cursor:hand;cursor:pointer;" onclick="closeInfoWindow()"></div>‘);
m.push(‘</div>‘);
//信息窗体内部样式更改
m.push(‘<div style="width:300px;padding:0 2px;border-left:#BBCCD3 solid 1px;border-right:#BBCCD3 solid 1px;
background-color:#F8F8F8;word-break:break-all;font-size:12px;overflow:hidden;">‘);
m.push(content);
m.push(‘</div>‘);
m.push(‘<div style="height:8px;position:relative;z-index:104;">‘);
m.push(‘<div style="width:8px;height:8px;background:url(‘+bg+‘) 0px -38px;
position:absolute;left:0;top:0;overflow:hidden;"></div>‘);
m.push(‘<div style="height:7px;border-bottom:#BBCCD3 solid 1px;margin:0px 8px;
background-color:#F8F8F8;overflow:hidden;"></div>‘);
m.push(‘<div style="width:8px;height:8px;background:url(‘+bg+‘) -8px -38px;
position:absolute;right:0;top:0;overflow:hidden;"></div>‘);
m.push(‘</div>‘);
m.push(‘<div style="height:0;position:relative;z-index:104;">‘);
for(var i=0;i<5;i++){
m.push("<div style=\"position:absolute;width:"+(26-i*5)+"px;height:5px;
background:url("+bg+") -"+(22-i)+"px "+(-i*5)+"px;left:"+(120-i)+"px;top:"+(-1+i*5)+"px;\"></div>");
    }
    m.push(‘</div>‘);
    return m.join("");
}

// 初始化一个信息窗口对象
var inforWindow = new AMap.InfoWindow({
        isCustom:true,
        offset:new AMap.Pixel(38,-26),
        content:InfoWindow(‘高德软件‘,info.join("<br/>") )  //设置content内容为调用InfoWindow()方法的返回值
    });
….
// 打开信息窗口
inforWindow.open(this.mapObj,new AMap.LngLat(116.37388157654,39.907409934248));
时间: 2024-10-12 09:30:02

覆盖物的相关文章

百度地图JavaScript API覆盖物旋转时出现偏移

在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节的错: <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("allmap"); var point = new BMap.Point(121.38750613, 31.17

百度地图开发入门【不同图层及覆盖物】

上次我们一起完成了helloMap这个最基本的地图,这次我们来体验下不同视觉地图的魅力 1.了解地图的最基本管理类BaiduMap 方法很简单就是 mapview.getMap(); 然后我们来看一下里面的方法 官方文档这么说来着 void addHeatMap(HeatMap heatmap) 添加热力图 Overlay addOverlay(OverlayOptions options) 向地图添加一个 Overlay void animateMapStatus(MapStatusUpdat

Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1

首页   代码   文档   问答   资讯   经验   GitHub日报 登录   注册 www.open-open.com/libOPEN经验 投稿 全部经验分类  Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  开发语言与工具  >  移动开发  

百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码

之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的显示. 详见:Android百度地图开发(一)之初体验 下面来看一下地图上覆盖物的添加,以及地理编码和反地理编码. 添加覆盖物 在地图上添加覆盖物,一般需要以下几个步骤: 1. 定义坐标点,有可能是一个,有可能是多个(比如:多边形覆盖物). 2. 构造OverlayOptions(地图覆盖物选型基类). 3. 在地图上添加覆盖物. 4. 添加相应的监听事件. 在API中可以看到,BaiDuMap类中有一个方法: 这个方法就是用

百度地图上自定义图片覆盖物上加点击事件

在百度地图上加自定义图片覆盖物之后,在这个覆盖物上加点击手势,发现并不识别.原因不太清楚.不过可以通过别的方法来实现这个功能. 需要用到BMKMapViewDelegate中的方法: - (void)mapView:(BMKMapView *)mapView onClickedMapBlank:(CLLocationCoordinate2D)coordinate 然后判断所点击的坐标是否在指定区域内,在指定区域内之后,调用自己写的相应地方法即可. 百度地图上自定义图片覆盖物上加点击事件,布布扣,

百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖物的基础上的. 如何做到,我点击覆盖物弹出信息框,信息框能够持续显示实时信息,直到点击关闭? 做下笔记,包括了自定义覆盖物标识.自定义信息窗口.信息窗口显示实时信息.清除覆盖物时信息窗口的显示问题等等. 贴张效果图:     代码: <script type="text/javascript&

Android 百度地图 SDK v3_3_0 (四) ---覆盖物

转载请标明出处:http://blog.csdn.net/tanzuai/article/details/43833125 本篇博客要实现的功能 先上效果图: 上面就是我们最终要实现的效果 1.首先我们来介绍下要实现的功能: A.更改坐标的位置 B.更改坐标的图标 C.删除图标 D.坐标每隔一段时间变动一次 clear.覆盖物的清楚 2.下面我们通过实例,一一的解析上面的功能 2.1首先我们初始化要用到的变量 /** * MapView 是地图主控件 */ private MapView mMa

Android应用之——百度地图最新SDK3.0应用,实现最常用的标注覆盖物以及弹出窗覆盖物

一.概述 最新版的百度地图SDK3.0,修改了很多方法,之前的很多方法被简化了,正好在做地图这一块,顺便就使用了最新版的sdk. 下载官方给的demo,发现变化还是挺大的,之前的一些方法都换了,地图的初始化也进行了调整.多了好几个类,具体用法参考下面的例子,详细的说明可参照官方的说明文档. 二.效果图 标注覆盖物效果图: 弹出窗覆盖物: 三.实现过程 大部分是根据官方给的demo来的. A.配置文件: 第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷

百度地图覆盖物多边形拖动,点击,生成新的覆盖物

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">