android地图范围内,android地图,判断坐标是否在你要求的范围内

第一,先定一个一个pojo。就是一个对象,对象里有 id  经度lag  维度lat

public class Company {

private int id;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public Double getLat() {

return lat;

}

public void setLat(Double lat) {

this.lat = lat;

}

public Double getLag() {

return Lag;

}

public void setLag(Double lag) {

Lag = lag;

}

private Double lat;

private Double Lag;

}

第二:写一个方法,判断该项目的坐标是不是在,在给定的坐标半径范围内

package cn.searchmap.db;

import java.math.BigDecimal;

public class SearchMapService {/**

* @param lat

* 纬度

* @param lag

* 经度

* @param r

* 半径

* @return Boolean

*/

public static Boolean check(Company company, Double lat, Double lag,

Integer r) {

double R = 6371;// 地球半径

double distance = 0.0;

double dLat = Double.valueOf(new BigDecimal(String.valueOf((company

.getLat() - lat)))

.multiply(new BigDecimal(String.valueOf(Math.PI)))

.divide(new BigDecimal(String.valueOf(180)), DEFAULT_DIV_SCALE,

BigDecimal.ROUND_HALF_EVEN).toString());

double dLon = Double.valueOf(new BigDecimal(String.valueOf((company

.getLag() - lag)))

.multiply(new BigDecimal(String.valueOf(Math.PI)))

.divide(new BigDecimal(String.valueOf(180)), DEFAULT_DIV_SCALE,

BigDecimal.ROUND_HALF_EVEN).toString());

double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)

+ Math.cos(company.getLat() * Math.PI / 180)

* Math.cos(lat * Math.PI / 180) * Math.sin(dLon / 2)

* Math.sin(dLon / 2);

distance = (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))) * R * 1000;

System.out.println(distance);

if (distance > Double.valueOf(String.valueOf(r))) {

return false;

}

return true;

}

第三:在使用端调用该方法:通过boolean值去判断在不在:

//建一个company对象 给赋值

// 以南宁市中心朝阳广场5000m内22.82515108.327743 5000是半径哦

boolean isok = SearchMapService.check(你的company对象, 22.82515,

108.327743, 5000);

if (isok) {

Log.e("haha", "亲你在指定的范围内哦");

//把该项目绘制在地图上。亲,大家懂了吧!如有不懂,欢迎骚扰!

}else {

Log.e("haha", "亲,你被抛弃了,不在指定的范围内");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值