本文整理汇总了Java中com.amap.api.maps.AMapUtils.calculateLineDistance方法的典型用法代码示例。如果您正苦于以下问题:Java AMapUtils.calculateLineDistance方法的具体用法?Java AMapUtils.calculateLineDistance怎么用?Java AMapUtils.calculateLineDistance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amap.api.maps.AMapUtils
的用法示例。
在下文中一共展示了AMapUtils.calculateLineDistance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: accept
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
public boolean accept(AMapLocation previous, AMapLocation current) {
if(previous == null){
return true;
}
LatLng pre = new LatLng(previous.getLatitude(), previous.getLongitude());
LatLng cur = new LatLng(current.getLatitude(), current.getLongitude());
float distance = AMapUtils.calculateLineDistance(pre, cur);
if(distance < RMConfiguration.DRAW_DISTANCE){
return false;
}
float speed = current.getSpeed();
double interval = (SystemClock.elapsedRealtime() - mPreviousUpdateTime)/1000.0;
float v = (float) (distance/interval);
if(v > RMConfiguration.MAX_SPEED || v > speed * 1.5){
return false;
}
mPreviousUpdateTime = SystemClock.elapsedRealtime();
return true;
}
示例2: equals
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
BuildingPoint that = (BuildingPoint) o;
if( AMapUtils.calculateLineDistance(latLng,that.latLng) < RMConfiguration.MAX_DISTANCE){
return true;
}
if(StringUtils.isEmpty(buildName) && StringUtils.isEmpty(that.buildName)){
return false;
}
return buildName != null ? buildName.equals(that.buildName) : that.buildName == null;
}
示例3: isWithinGroup
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
/**
* 计算点是否在一组定位的范围内
* */
public int isWithinGroup(LatLng a , List<LatLng> list , float distance){
if(a == null || list == null || list.size() == 0 || distance <= 0){
return Const.BAD_REQUEST;
}
for (LatLng latLng : list){
float d = AMapUtils.calculateLineDistance(a, latLng);
if(distance - d > 0){
LogUtil.getIns(TAG).i(latLng.toString());
return Const.WITHIN_AREA;
}
}
return Const.WITHOUT_AREA;
}
示例4: getDistance
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
private float getDistance(List<AMapLocation> list) {
float distance = 0;
if (list == null || list.size() == 0) {
return distance;
}
for (int i = 0; i < list.size() - 1; i++) {
AMapLocation firstpoint = list.get(i);
AMapLocation secondpoint = list.get(i + 1);
LatLng firstLatLng = new LatLng(firstpoint.getLatitude(),
firstpoint.getLongitude());
LatLng secondLatLng = new LatLng(secondpoint.getLatitude(),
secondpoint.getLongitude());
double betweenDis = AMapUtils.calculateLineDistance(firstLatLng,
secondLatLng);
distance = (float) (distance + betweenDis);
}
return distance;
}
示例5: getCluster
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
/**
* 根据一个点获取是否可以依附的聚合点,没有则返回null
*
* @param latLng
* @return
*/
private Cluster getCluster(LatLng latLng,List<Cluster>clusters) {
for (Cluster cluster : clusters) {
LatLng clusterCenterPoint = cluster.getCenterLatLng();
double distance = AMapUtils.calculateLineDistance(latLng, clusterCenterPoint);
if (distance < mClusterDistance && mAMap.getCameraPosition().zoom < 19) {
return cluster;
}
}
return null;
}
示例6: onNewLocation
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
public long onNewLocation(TrackPoint trackPoint) {
LatLng cur = new LatLng(trackPoint.getLatitude(), trackPoint.getLongitude());
if(mCoordinateLists.isEmpty()){
mCoordinateLists.add(trackPoint);
return 0;
}
LatLng pre = mCoordinateLists.get(mCoordinateLists.size() - 1).getLocation();
mCoordinateLists.add(trackPoint);
mDurationDistance += AMapUtils.calculateLineDistance(pre, cur);
return mDurationDistance;
}
示例7: isClosed
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
private boolean isClosed(TrackPoint cur,TrackPoint cmp){
float distance = AMapUtils.calculateLineDistance(cur.getLocation(),cmp.getLocation());
if(distance < RMConfiguration.MAX_DISTANCE){
CFLog.e("Build","closed = "+distance);
return true;
}
return false;
}
示例8: isWithin
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
/**
* 计算两点间距离,返回是否在范围内
* */
public boolean isWithin(LatLng a, LatLng b, float distance){
if(a == null || b == null){
return false;
}
float d = AMapUtils.calculateLineDistance(a, b);
if(distance - d > 0){
return true;
}
return false;
}
示例9: getCluster
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
/**
* 根据一个点获取是否可以依附的聚合点,没有则返回null
*
* @param latLng
* @return
*/
private Cluster getCluster(LatLng latLng, List<Cluster> clusters) {
for (Cluster cluster : clusters) {
LatLng clusterCenterPoint = cluster.getCenterLatLng();
double distance = AMapUtils.calculateLineDistance(latLng, clusterCenterPoint);
if (distance < mClusterDistance) {
return cluster;
}
}
return null;
}
示例10: setPoints
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
/**
* 设置平滑移动的经纬度数组
*
* @param points
*/
public void setPoints(List<LatLng> points) {
this.points.clear();
for (LatLng latLng : points) {
this.points.add(latLng);
}
if (points.size() > 1) {
endPoint = points.get(points.size() - 1);
lastEndPoint = points.get(points.size() - 2);
}
eachDistance.clear();
totalDistance = 0;
//计算比例
for (int i = 0; i < points.size() - 1; i++) {
double distance = AMapUtils.calculateLineDistance(points.get(i), points.get(i + 1));
eachDistance.add(distance);
totalDistance += distance;
}
remainDistance = totalDistance;
LatLng markerPoint = this.points.removeFirst();
if (marker != null) {
marker.setPosition(markerPoint);
//判断是否使用正确的图标
checkMarkerIcon();
} else {
if (descriptor == null) {
useDefaultDescriptor = true;
}
marker = mAMap.addMarker(new MarkerOptions().belowMaskLayer(true).position
(markerPoint).icon(descriptor).title("").anchor(0.5f, 0.5f));
}
}
示例11: onCreate
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.set_trace);
context = this;
init();
float f = 0;
for (int i = 0; i < latlngList.size() - 1; i++) {
f += AMapUtils.calculateLineDistance(latlngList.get(i),
latlngList.get(i + 1));
}
Log.i("float", String.valueOf(f / 1000));
}
示例12: getView
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder = null;
if (view == null) {
holder = new ViewHolder();
view = getLayoutInflater().inflate(R.layout.item_device, null);
holder.image = (ImageView) view.findViewById(R.id.image);
holder.name = (TextView) view.findViewById(R.id.name);
holder.state = (TextView) view.findViewById(R.id.state);
holder.price = (TextView) view.findViewById(R.id.price);
holder.address = (TextView) view.findViewById(R.id.address);
holder.deviceState = (TextView) view.findViewById(R.id.device_state);
holder.nearBy = (TextView) view.findViewById(R.id.nearby);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
MediaDevice mediaDevice = list.get(i);
holder.name.setText(mediaDevice.getName());
holder.state.setText(mediaDevice.parseBidState());
holder.price.setText(String.valueOf(mediaDevice.getBasePrice()));
holder.address.setText(mediaDevice.getAddress());
holder.deviceState.setText(mediaDevice.parseDeviceState());
if(mediaDevice.getDevicePictureUrls()!=null && !mediaDevice.getDevicePictureUrls().isEmpty()){
Glide.with(context)
.load(mediaDevice.getDevicePictureUrls().get(0))
.into(holder.image);
}else{
Glide.with(context)
.load("")
.into(holder.image);
}
holder.nearBy.setVisibility(View.VISIBLE);
LatLng latLng1 = new LatLng(
new BigDecimal(Float.toString(mediaDevice.getLat())).doubleValue(),
new BigDecimal(Float.toString(mediaDevice.getLng())).doubleValue());
float distance = AMapUtils.calculateLineDistance(latLng,latLng1);
if(distance < 1000){
holder.nearBy.setText((int)distance+"m");
}else{
holder.nearBy.setText((int)(distance/1000)+"km");
}
return view;
}
示例13: getDistance
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
public static String getDistance(double longitude, double latitude) {
double localLongitude = UserManager.getInstance().getCurrentUser().getLocation().getLongitude();
double localLatitude = UserManager.getInstance().getCurrentUser().getLocation().getLatitude();
int distance = (int) AMapUtils.calculateLineDistance(new LatLng(localLatitude, localLongitude), new LatLng(latitude, longitude));
return distance + "";
}
示例14: drawTrackAnimation
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
public void drawTrackAnimation(List<LatLng> drawSource, int currentIndex, SmoothMoveMarker.MoveListener moveListener) {
//寻找与起点距离最远的点
SmoothMoveMarker pre = mMarkerLists.peek();
if(pre != null){
pre.setMoveListener(null);
mMarkerLists.poll();
}
float maxDistance = 0;
LatLng endPoint = null;
for (int i = 1; i < drawSource.size(); i++) {
float distance = AMapUtils.calculateLineDistance(drawSource.get(0), drawSource.get(i));
if (distance > maxDistance) {
endPoint = drawSource.get(i);
maxDistance = distance;
}
}
CFLog.e("TAG", "max distance = " + maxDistance);
//代表构成的一个矩形区域,由两点决定
LatLngBounds bounds = new LatLngBounds(drawSource.get(0), endPoint);
float pad = GlobalApplication.getAppContext().getResources().getDisplayMetrics().scaledDensity * RMConfiguration.MAP_PADDING;
mAmap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(drawSource.get(0), 17, 0, 0)));
mAmap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, (int) pad));
drawSingleMaker(drawSource.get(0), GlobalApplication.getAppContext().getString(R.string.string_start_point), -1);
drawSingleMaker(drawSource.get(drawSource.size() - 1), GlobalApplication.getAppContext().getString(R.string.string_end_point), -1);
if (currentIndex == 0) {
drawPolyLineWithTexture(drawSource, R.mipmap.track_line_texture);
} else {
Random random = new Random(SystemClock.currentThreadTimeMillis());
drawPolyLine(drawSource, Color.rgb(random.nextInt(255), random.nextInt(255), random.nextInt(255)));
}
//按照指定的经纬度数据和时间,平滑移动
SmoothMoveMarker smoothMarker = new SmoothMoveMarker(mAmap);
// 设置滑动的图标
smoothMarker.setDescriptor(BitmapDescriptorFactory.fromResource(R.mipmap.track_line_icon));
// 设置滑动的轨迹点
smoothMarker.setPoints(drawSource);
// 设置滑动的总时间
smoothMarker.setTotalDuration(20);
//设置监听
smoothMarker.setMoveListener(moveListener);
// 开始滑动
smoothMarker.startSmoothMove();
mMarkerLists.add(smoothMarker);
}
示例15: onReceive
import com.amap.api.maps.AMapUtils; //导入方法依赖的package包/类
@Override
public void onReceive(Context context, Intent intent) {
provider = intent.getStringExtra(StaticData.PROVIDER);
if (latitude != intent.getDoubleExtra(StaticData.LATITUDE, 0)
&& longitude != intent.getDoubleExtra(StaticData.LONGITUDE,
0)) {
if (start) {
latlng = new LatLng(latitude, longitude);
LatLng temp = new LatLng(intent.getDoubleExtra(
StaticData.LATITUDE, 0), intent.getDoubleExtra(
StaticData.LONGITUDE, 0));
float temp_distance = AMapUtils.calculateLineDistance(
latlng, temp);
if (provider.equals("lbs")) {
if (temp_distance <= 60) {
speed = temp_distance / 5 * 3.6;
totaldistance += temp_distance / 1000;
voice.playText("当前速度为" + df.format(speed) + "千米每小时");
} else {
speed = temp_distance / 5 * 3.6;
totaldistance += temp_distance / 1000;
voice.playText("当前速度为" + df.format(speed)
+ "千米每小时,速度有些过快");
}
} else if (provider.equals("gps")) {
speed = intent.getDoubleExtra(StaticData.SPEED, 0);
voice.playText("当前速度为" + df.format(speed) + "千米每小时");
}
if (speed >= maxspeed) {
maxspeed = (float) speed;
}
speedtext.setText("速度:" + df.format(speed) + "km/h");
DrawRideTrace(latlng, temp);
}
latitude = intent.getDoubleExtra(StaticData.LATITUDE, 0);
longitude = intent.getDoubleExtra(StaticData.LONGITUDE, 0);
}
if (start) {
t++;
h = t / 3600;
m = t % 3600 / 60;
s = t % 3600 % 60;
timetext.setText("时间:" + h + "h:" + m + "m:" + s + "s");
if (m == 10) {
voice.playText("您已经骑行" + df.format(totaldistance) + "千米");
}
}
mlatitude = intent.getDoubleExtra(StaticData.LATITUDE, 0);
mlongitude = intent.getDoubleExtra(StaticData.LONGITUDE, 0);
if (closeinit && locationservice != null) {
duration++;
setLocationIcon();
if (duration == 6) {
duration = 0;
closeinit = false;
startup.setVisibility(View.GONE);
}
}
}