博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android百度地图画圆,使用百度地图Api,在地图上画圆形区域
阅读量:6469 次
发布时间:2019-06-23

本文共 2785 字,大约阅读时间需要 9 分钟。

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}

#l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}

#r-result{height:100%;width:20%;float:left;}

圆形区域搜索

var map = new BMap.Map("allmap"); // 创建Map实例

var mPoint = new BMap.Point(102.752495, 25.047873);

map.enableScrollWheelZoom();

map.centerAndZoom(mPoint, 14);

setMapEvent();

addMarker(mPoint, 0);

var circle = new BMap.Circle(mPoint, 5000, { //半径为5公里圆

fillColor: "blue",

strokeWeight: 1,

fillOpacity: 0.1,

strokeOpacity: 0.1

});

var circle1 = new BMap.Circle(mPoint, 7500, { //半径为7.5公里圆

fillColor: "red", //颜色

strokeWeight: 2, //边框宽带

fillOpacity: 0.1,

strokeOpacity: 0.1

});

map.addOverlay(circle);

map.addOverlay(circle1);

var local = new BMap.LocalSearch(map, {

renderOptions: {

map: map,

autoViewport: false

}

});

var bounds = getSquareBounds(circle.getCenter(), circle.getRadius());

var bounds1 = getSquareBounds(circle1.getCenter(), circle1.getRadius());

function setMapEvent() {

map.enableScrollWheelZoom();

map.enableKeyboard();

map.addControl(new BMap.NavigationControl({

type: BMAP_NAVIGATION_CONTROL_SMALL

})); //添加默认缩放平移控件

}

//local.searchInBounds("餐馆",bounds);

/**

* 得到圆的内接正方形bounds

* @param {Point} centerPoi 圆形范围的圆心

* @param {Number} r 圆形范围的半径

* @return 无返回值

*/

function getSquareBounds(centerPoi, r) {

var a = Math.sqrt(2) * r; //正方形边长

mPoi = getMecator(centerPoi);

var x0 = mPoi.x,

y0 = mPoi.y;

var x1 = x0 + a / 2,

y1 = y0 + a / 2; //东北点

var x2 = x0 - a / 2,

y2 = y0 - a / 2; //西南点

var ne = getPoi(new BMap.Pixel(x1, y1)),

sw = getPoi(new BMap.Pixel(x2, y2));

return new BMap.Bounds(sw, ne);

}

//根据球面坐标获得平面坐标。

function getMecator(poi) {

return map.getMapType().getProjection().lngLatToPoint(poi);

}

//根据平面坐标获得球面坐标。

function getPoi(mecator) {

return map.getMapType().getProjection().pointToLngLat(mecator);

}

function addMarker(point, c) {

map.clearOverlays();

var b = new BMap.Icon("Images/markers.png", new BMap.Size(23, 25), {

offset: new BMap.Size(10, 25),

imageOffset: new BMap.Size(0, 0 - c * 25),

infoWindowAnchor: new BMap.Size(12, 0)

});

var marker = null;

if (c >= 0) {

marker = new BMap.Marker(point, {

icon: b

});

} else {

marker = new BMap.Marker(point);

}

map.addOverlay(marker);

marker.addEventListener("click",

function(e) {

showPointInfo(0, mPoint, "王大桥", "王大桥公交站点");

});

}

//点击列表,地图打开气泡

function showPointInfo(index, poi, title, addr) {

var title = '' + title + '';

var html = [];

html.push('地址信息:' + addr + '

');

var Icon = new BMap.Icon("Images/markers_new.png", new BMap.Size(30, 45), {

offset: new BMap.Size(0, 20),

imageOffset: new BMap.Size(30, -70)

});

var opts = {

width: 250,

height: 0,

title: title

}

var point = new BMap.Point(poi.lng, poi.lat);

var infoWindow = new BMap.InfoWindow(html.join(""), opts);

map.openInfoWindow(infoWindow, point);

}

转载地址:http://qxdko.baihongyu.com/

你可能感兴趣的文章
关于自定义View的一些东西
查看>>
JScrollPane 在末尾追加文本,并更新卷滚条,使新添文本可视
查看>>
移动端click有300秒卡顿fastclick.js
查看>>
我的友情链接
查看>>
Windows Server 2012 DHCP故障转移
查看>>
通过密钥 SFTP (三):SFTP 账户指定(不是限定)根目录
查看>>
Dell服务器RAID常用管理命令总结 linux
查看>>
Android Camera简述
查看>>
Linux磁盘限额
查看>>
我的友情链接
查看>>
10.26 作业
查看>>
论剑BGP3
查看>>
关于lun 的几个问题
查看>>
网页图表Highcharts实践教程之图表区
查看>>
告诉自己,坚持学习--自己的新博客
查看>>
redis慢日志查询
查看>>
int表示范围大小
查看>>
玩转百度即用API(4)——手机号码归属地查询
查看>>
【Android学习总结】之Activity:初识Activity及使用
查看>>
HTTPD+PHP+MySQL+NFS
查看>>