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

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

你是不是看过很多房产网站?例如安居客,新浪乐居。

你是不是也想做一个能写文字的标注?

你知道怎么去实现麼?

其实,上图这样的标注是一个“自定义覆盖物”。你可以任意指定它的样式,文字,图片等等。

首先,我需要初始化地图:

var mp = new BMap.Map("map_container");
var point = new BMap.Point(116.3964,39.9093);
mp.centerAndZoom(point,15);

然后,我建立两个自定义覆盖物:

var myCompOverlay = new ComplexCustomOverlay(new BMap.Point(116.407845,39.914101), "天安门东");
var myCompOverlay2 = new ComplexCustomOverlay(new BMap.Point(116.406946,39.911403), "国家博物馆");

对自定义覆盖物定义:(包括样式、图片、位置偏移等等)

// 复杂的自定义覆盖物
function ComplexCustomOverlay(point, text){
this._point = point;
this._text = text;
}
ComplexCustomOverlay.prototype = new BMap.Overlay();
ComplexCustomOverlay.prototype.initialize = function(map){
this._map = map;
var div = this._div = document.createElement("div");
div.style.position = "absolute";
div.style.zIndex = BMap.Overlay.getZIndex(this._point.lat);
div.style.backgroundColor = "#EE5D5B";
div.style.border = "1px solid #BC3B3A";
div.style.color = "white";
div.style.height = "18px";
div.style.padding = "2px";
div.style.lineHeight = "18px";
div.style.whiteSpace = "nowrap";
div.style.MozUserSelect = "none";
div.style.fontSize = "12px"
div.appendChild(document.createTextNode(this._text));

var arrow = this._arrow = document.createElement("div");
arrow.style.background = "url(http://map.baidu.com/fwmap/upload/r/map/fwmap/static/house/images/label.png) no-repeat";
arrow.style.position = "absolute";
arrow.style.width = "11px";
arrow.style.height = "10px";
arrow.style.top = "22px";
arrow.style.left = "10px";
arrow.style.overflow = "hidden";
div.appendChild(arrow);

div.onmouseover = function(){
this.style.backgroundColor = "#6BADCA";
this.style.borderColor = "#0000ff";
arrow.style.backgroundPosition = "0px -20px";
}

div.onmouseout = function(){
this.style.backgroundColor = "#EE5D5B";
this.style.borderColor = "#BC3B3A";
arrow.style.backgroundPosition = "0px 0px";
}

mp.getPanes().labelPane.appendChild(div);

return div;
}
ComplexCustomOverlay.prototype.draw = function(){
var map = this._map;
var pixel = map.pointToOverlayPixel(this._point);
this._div.style.left = pixel.x - parseInt(this._arrow.style.left) + "px";
this._div.style.top = pixel.y - 30 + "px";
}

最后,在地图上把它们添加上来。

mp.addOverlay(myCompOverlay);
mp.addOverlay(myCompOverlay2);

运行示例,请点击:

http://ui-love.com/baidumap/customoverlay.html

时间: 2024-10-19 05:17:23

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

【百度地图API】除夕夜,大家一起来赶走“夕”——删除标注功能

原文:[百度地图API]除夕夜,大家一起来赶走"夕"--删除标注功能 任务描述: 农历12月31日是中国传统的节日——除夕.你知道除夕是怎么来的麼? “夕”在中国古代神话中,可是一个专吃小孩的怪兽呢!所以,我们过春节时要放鞭炮吓走“夕”,以求平安. 那让我们一起来除掉那些红色的“夕”吧! 如何实现: 方法一.给地图增加一个事件监听,addEventListener,当右击地图时,出现右键菜单,可删除标注. 方法二.给标注增加事件监听,右键点击标注,即可删除. 图示: 运行代码,请点击这

百度地图API使用系列3-基本地图1

百度基本地图使用1 关于百度地图申请开发者key 可以参考前面的博客 百度地图API使用系列1-准备工作 关于搭建工程的可以参考前面的博客 百度地图API使用系列2-显示地图 这一篇博客介绍基本地图使用里面的地图类型.显示实时交通图.在地图显示一个Marker. 这里要注意的是关于地图的操作不是有显示地图的控件直接去完成,百度为他添加了一个属性BaiduMap 可以把这个属性理解为是 地图的管理器 我们可以通过对应 的 get 方法 获取这个属性 baiduMap = baiduMapView.

百度地图API详解之自定义地图类型

http://blog.csdn.net/sup_heaven/article/details/8461586 今天的文章主要介绍如何利用地图API实现自定义地图. 百度地图API目前默认支持两种地图类型(map type):普通图和三维图,它们分别通过常量BMAP_NORMAL_MAP和BMAP_PERSPECTIVE_MAP来表示,在1.2版本中这两个常量实际上是MapType对象的实例.当然开发者也可以自己实例化一个MapType从而实现一个自定义的地图. 切图工具的使用 我们先从切图工具

android菜鸟学习笔记31----Android使用百度地图API(二)获取地理位置及地图控制器的简单使用

1.获取当前地理位置: Android中提供了一个LocationManager的类,用于管理地理位置.不能通过构造函数获取该类的实例,而是通过Context的getSystemService(): LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 该类中有几个比较常用的方法: getLastKnownLocation(String provider)用于根据传入的provider

百度地图API使用系列2-显示地图

开始百度地图的应用 首先应该先去下载百度提供给我们的SDK 包括开发包 示例代码 API 登录下面地址 http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5 这些根据自己的开发需要自己决定下载 -> 情况容许全部下载也不大 1. 导入工程需要的类库文件 解压  开发包 进入 libs 目录下面 这个 jar 需要 还有底层库 进入 armeabi 目录下面 如果使用到定位功能 还需要一个 jar包 2. 配置开发者ke

通过百度地图API显示当前位置在地图上(图标显示)--第三方开源--百度地图(二)

1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 2.把demo里面的BaiduMapsApiDemo解压,把BaiduMapsApiDemo文件夹里面的libs里面的所有文件都复制到自己的项目的libs里面 3.配置Andro

【高德地图API】汇润做爱地图技术大揭秘

昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以标记做爱地点与详情的地图.这不就是中国版的I just made love麽? 滑到屏幕底下,看了看阅读量,哇塞,居然有4万3!!!说明实在是有很多人关注做爱地图啊.本着研究地图的心情(绝对不是为了什么价值300的智能情趣用品!),我也就点击了[阅读原文]…… 好吧,为了证明我真的不是为了奖品,我会一边写活动步骤,一边揭秘其中的LBS技术.  

百度地图API使用介绍

百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html> 2. <head> 3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4. <title>Hello, World</title> 5. <sc

百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和DOM编程里的事件模型一样,百度地图API也提供了类似的事件机制.本文介绍了事件监听的添加和移除方法,this指针和事件参数的使用以及绑定事件监听函数中涉及的闭包问题,最后分享了一个用来增强地图API事件机制的开源项目. 事件添加和移除 我们最简单的事件开始,下面的代码示例给map对象添加了click事件的监听

百度地图API和高德地图API资料集锦

[高德地图API]从零开始学高德JS API(五)路线规划--驾车|公交|步行 [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 [高德地图API]从零开始学高德JS API(三)覆盖物--标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 [高德地图API]从零开始学高德JS API(二)地图控件与插件--测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 [高德地图API]从零开始学高德JS API