区域地址搜索是指某一地址或某些地址是否在指定的区域范围内。区域范围一般有圆形、矩形和多边形,利用百度地图API提供的数据接口,可以提取中国,各省、市、区,甚至是小区或商圈的边界经纬度坐标(多边形)。这样,就可以根据判断任意经纬度所在区域,在地址分类以及和地址相关指标的分类和插值算法中有广泛用途。
本文判别计算需要引入百度地图API类库:
<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
类BMapLib.GeoUtils提供的都是静态方法,勿需实例化即可使用。方法列表如下:
| 方法 | 返回值 | 描述 |
|---|---|---|
| BMapLib.GeoUtils.degreeToRad(Number) | Number | 将度转化为弧度 |
| BMapLib.GeoUtils.radToDegree(Number) | Number | 将弧度转化为度 |
| BMapLib.GeoUtils.getDistance(Point, Point) | Number | 计算经纬度之间的距离 |
| BMapLib.GeoUtils.getPolygonArea(polygon) | Number | 计算多边形面或点数组构建图形的面积 |
| BMapLib.GeoUtils.getPolylineDistance(polyline) | Number | 计算折线或者点数组的长度 |
| BMapLib.GeoUtils.isPointInCircle(point, circle) | Boolean | 判断点是否在圆形内 |
| BMapLib.GeoUtils.isPointInPolygon(point, polygon) | Boolean | 判断点是否多边形内 |
| BMapLib.GeoUtils.isPointInRect(point, bounds) | Boolean | 判断点是否在矩形内 |
| BMapLib.GeoUtils.isPointOnPolyline(point, polyline) | Boolean | 判断点是否在折线上 |
一、点与区域之间的关系
这里,“点”指某一地址或经纬度坐标,区域指园形、矩形、多边形或当前地图可视区域。点与区域之间的关系是指点在区域内或区域外。
1、判断一些点是否在给定圆形区域内
待判别经纬度坐标
2、判断一些点是否在给定矩形区域内
待判别经纬度坐标
3、判断一些点是否在给定多边形区域内
待判别经纬度坐标