【百度地图API】——如何用label制作简易的房产标签

原文:【百度地图API】——如何用label制作简易的房产标签

摘要:

  最近,API爱好者们纷纷说,自定义marker太复杂了!不仅定义复杂,连所有的dom事件都要自己重新定义。有没有快速简易创建房产标签的方法呢?

  答案当然是有的啦~

  我们可以利用label嘛!

-------------------------------------------------------------------------------

一、创建地图

这是老生常谈的三句话,初始化地图的js。

var map = new BMap.Map("container");    //创建地图容器var point = new BMap.Point(116.404, 39.915);        //创建一个点map.centerAndZoom(point, 15);                       //设立中心点和地图级别,就是初始化地图

  

二、添加文本标签

var myLabel = new BMap.Label("海辉房产 21000元",     //为lable填写内容    {offset:new BMap.Size(-60,-60),                  //label的偏移量,为了让label的中心显示在点上    position:point});                                //label的位置

myLabel.setTitle("我是文本标注label");               //为label添加鼠标提示map.addOverlay(myLabel);                             //把label添加到地图上

  

文本标注默认的样子是这样滴,如下图:

我觉得label最棒的一点是,它不仅仅是文本标签而已,还能写成<a></a>链接的方式。

这样,你的label可以链接到任意一个网页上。

var myLabel = new BMap.Label("<a href='http://dev.baidu.com/wiki/static/index.htm'>百度地图API 0元</a>",     //为lable填写内容

  

三、设置文本标签的样式。关键!!!

创建完毕的房产标注见上图,你可以更换图片,让房产标签看起来更好看!!

以下的代码,用来设置lable的CSS。你可以书写任意的CSS,注意,如果是font-size这样的CSS属性,你要写成驼峰式,fontSize这样的,才能被识别。

myLabel.setStyle({                                   //给label设置样式,任意的CSS都是可以的    color:"red",                   //颜色    fontSize:"14px",               //字号    border:"0",                    //边    height:"120px",                //高度    width:"125px",                 //宽    textAlign:"center",            //文字水平居中显示    lineHeight:"120px",            //行高,文字垂直居中显示    background:"url(http://cdn1.iconfinder.com/data/icons/CrystalClear/128x128/actions/gohome.png)",    //背景图片,这是房产标注的关键!    cursor:"pointer"});

  

四、全部源代码

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>label制作</title><script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script></head><body><div style="width:800px;height:500px;border:1px solid gray" id="container"></div></body></html><script type="text/javascript">var map = new BMap.Map("container");    //创建地图容器var point = new BMap.Point(116.404, 39.915);        //创建一个点map.centerAndZoom(point, 15);                       //设立中心点和地图级别,就是初始化地图var myLabel = new BMap.Label("<a style='color:red;text-decoration:none' target='_blank' href='http://dev.baidu.com/wiki/static/index.htm'>百度地图API 0元</a>",     //为lable填写内容    {offset:new BMap.Size(-60,-60),                  //label的偏移量,为了让label的中心显示在点上    position:point});                                //label的位置myLabel.setStyle({                                   //给label设置样式,任意的CSS都是可以的    fontSize:"14px",               //字号    border:"0",                    //边    height:"120px",                //高度    width:"125px",                 //宽    textAlign:"center",            //文字水平居中显示    lineHeight:"120px",            //行高,文字垂直居中显示    background:"url(http://cdn1.iconfinder.com/data/icons/CrystalClear/128x128/actions/gohome.png)",    //背景图片,这是房产标注的关键!    cursor:"pointer"});myLabel.setTitle("我是文本标注label");               //为label添加鼠标提示map.addOverlay(myLabel);                             //把label添加到地图上

var infoWindow = new BMap.InfoWindow("<p style='font-size:12px;lineheight:1.8em;'>我是lable打开的信息窗口  <img src='http://dev.baidu.com/wiki/static/static/img/new.gif' /></p>");  // 创建信息窗口对象myLabel.addEventListener("click", function(){      map.openInfoWindow(infoWindow, point);  });  </script>

  

-----------------------------------------------------------------------------------------------

不过,用label制作的房产标注,毕竟不是正规标注marker,而是文字标签label。所以,会有一些小缺陷。

如果你能忍受它们,那就大胆地使用label吧~

1、不能像marker那样,能拖动。enableDragging

2、设置不了a:hover,就是说鼠标放到label上时,背景图片不能变。

3、不能添加信息窗口(谢谢JZ1108的提醒,lable是可以添加信息窗口的~)2011.8.26更新

var infoWindow = new BMap.InfoWindow("<p style='font-size:12px;lineheight:1.8em;'>我是lable打开的信息窗口  <img src='http://dev.baidu.com/wiki/static/static/img/new.gif' /></p>");  // 创建信息窗口对象myLabel.addEventListener("click", function(){      map.openInfoWindow(infoWindow, point);  });  

  

如果你忍受不了以上两点,请使用自定义marker来制作房产标注。虽然代码看上去有点儿多。但条理很清晰~

【百度地图API】你看过房产地图吗?你知道房产标注是如何建立的吗?

http://www.cnblogs.com/milkmap/archive/2011/04/18/2019906.html

时间: 2025-01-24 14:49:55

【百度地图API】——如何用label制作简易的房产标签的相关文章

【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)

原文:[百度地图API]如何自定义地图图层?实例:制作麻点图(自定义图层+热区) 摘要:自定义地图图层的用途十分广泛.常见的应用,比如制作魔兽地图和清华校园地图(使用切图工具即可轻松实现).今天我们来学习,当地图上有大量标注,比如600万个的时候,我们如何用"麻点图"来实现标注的展示. -----------------------------------------------------------------------------------------------------

【百度地图API】如何制作多途经点的线路导航——驾车篇

原文:[百度地图API]如何制作多途经点的线路导航--驾车篇 摘要: 休假结束,酸奶小妹要从重庆驾车去北京.可是途中要去西安奶奶家拿牛奶饼干呢!用百度地图API,能不能帮我实现这个愿望呢? ------------------------------------------------------------------------------------------------------------------------ 一.创建地图 首先要告诉大家的是,API1.2版本取消密钥,取消服务

【百度地图API】如何制作班级地理通讯录?LBS通讯录

原文:[百度地图API]如何制作班级地理通讯录?LBS通讯录 摘要:班级通讯录必备的功能,比如人员列表,人员地理位置标注,展示复杂信息窗口,公交和驾车等.一般班级人员都不会超过300个,因为可以高效地把全部人员的地理位置都显示在地图上. --------------------------------------------------------------------------- 预备知识1.为啥marker数量不能超过300个? 答:由于浏览器能支持的dom元素有限,所以建议不超过该数量

【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库!

原文:[百度地图API]交你如何用百度地图搜索自己的数据!不需数据库! 摘要: 我有一定的房产数据,还有银行数据.我想在百度地图上标注出来,并且能搜索到我这些数据. 可是百度的数据库上并没有我的数据.我应该怎么办呢? ------------------------------------------------------------------------------------------ 一.无需数据库,如何建立自己的地理信息表. 如果让初学者去建立数据库,那么意味着大家还要学习数据库,

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! --------------------------------------------- 一.制作魔兽地图的准备工作 其实,你只需要准备一些地图的瓦片图,就可以了. 用切片工具,把一张完整的图片(最好大一些,清楚一些),切成小片.(下周我贴这个工具的下载链接出来.留个悬念,哈哈.) 正式公布切图工具链接: http://openapi.baidu.co

如何利用【百度地图API】,制作房产酒店地图?(中)——使用右侧列表打开信息窗口

原文:如何利用[百度地图API],制作房产酒店地图?(中)--使用右侧列表打开信息窗口 摘要: 很多房产网.旅游酒店网上,都有一个列表,鼠标经过列表上的数据时,地图上就会打开相应的信息窗口. 如何实现这一功能呢? 快来学习吧. ----------------------------------------------------------------------------------------------- 一.制作列表 接着上一篇文章来讲,我们已经拥有了一张能显示自定义标注,和信息窗口

【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注. -------------------------------------------------------------------------------------------------------------- 成品图:     工具描述: 移动地图时(或改变地图级别时),只显示

【百度地图API】如何制作“从这里出发”“到这里去”——公交篇

原文:[百度地图API]如何制作"从这里出发""到这里去"--公交篇 摘要: 百度地图首页上的"从这里出发""到这里去",一直是开发者们很热衷的一个功能.那么,怎样结合百度的数据库,来制作这个功能呢?让我们一起来学习一下. -------------------------------------------------------------------------------------------------------

【百度地图API】如何制作可拖拽的沿道路测距

原文:[百度地图API]如何制作可拖拽的沿道路测距 摘要: 地图测距,大家都会,不就map.getDistance麼.可是,这只能测任意两点的直线距离,用途不够实际啊.比如,我想测试北京天安门到北京后海的距离,怎么办呢? 显然"沿道路测距"就显得尤为重要了.那么如果制作"可拖拽"的沿道路测距呢?我们一起来看一看. -----------------------------------------------------------------------------