123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import * as extent from "ol/extent"
- import LngLat from "./LngLat"
- /**
- * @description KMap.Bounds 经纬度矩形范围类
- */
- class Bounds{
- /**
- * @param {KMap.LngLat} southWest 矩形范围西南角坐标,必填,格式new KMap.LngLat()
- * @param {KMap.LngLat} northEast 矩形范围东北角坐标,必填,格式new KMap.LngLat()
- */
- constructor(southWest,northEast){
- const vm = this
- vm.southWest = southWest
- vm.northEast = northEast
- let mapSouthWest = [southWest.getLng(),southWest.getLat()]
- let mapNorthEast = [northEast.getLng(),northEast.getLat()]
- let bounds = new extent.boundingExtent([mapSouthWest,mapNorthEast])
- this.bounds = bounds
- }
- /**
- * @description 判断指定点坐标是否在矩形范围内
- * @param {KMap.LngLat} point 经纬度点,KMap.LngLat格式,必填
- * @returns {boolean}在矩形范围内返回true,否则返回false
- */
- contains(point) {
- const vm = this
- if( (point.getLng() >= vm.southWest.getLng() && point.getLng() <= vm.northEast.getLng())
- && (point.getLat() >= vm.southWest.getLat() && point.getLat() <= vm.northEast.getLat()) )
- {
- return true
- }else{
- return false
- }
- }
- /**
- * @description 获取中心点坐标
- * @returns {KMap.LngLat}中心点坐标,KMap.LngLat格式
- */
- getCenter() {
- const vm = this
- let lng = (vm.southWest.getLng() + vm.northEast.getLng()) / 2
- let lat = (vm.southWest.getLat() + vm.northEast.getLat()) / 2
- var center = new LngLat(lng,lat)
- return center
- }
- /**
- * @description 获取西南角坐标
- * @returns {KMap.LngLat}西南角坐标,KMap.LngLat格式
- */
- getSouthWest() {
- const vm = this
- return vm.southWest
- }
- /**
- * @description 获取东北角坐标
- * @returns {KMap.LngLat}东北角坐标,KMap.LngLat格式
- */
- getNorthEast() {
- const vm = this
- return vm.northEast
- }
- /**
- * @description 以字符串形式返回地物对象的矩形范围
- * @returns {String}西南角经度、西南角纬度:东北角经度、东北角纬度
- */
- toString() {
- const vm = this
- return vm.southWest.getLng() + "," + vm.southWest.getLat() + ":"
- + vm.northEast.getLng() + "," + vm.northEast.getLat()
- }
- }
- export default Bounds
|