java - 检测用户何时进入圈子
问题描述
我正在开发基于谷歌地图的应用程序。
我在地图上添加了一个圆圈 ( https://ibb.co/PhZy0t6 ),我一直在尝试检测用户是否进入了圆圈。
用户是我与用户当前位置一起添加的标记。
我尝试执行以下操作:
// Circle code:
circle = mMap.addCircle(new CircleOptions()
.center(new LatLng(addressLatLng.latitude, addressLatLng.longitude))
.radius(70)
.strokeColor(Color.RED)
);
// The rest
float[] distance = new float[2];
Location.distanceBetween(userLocation.latitude, userLocation.longitude, circle.getCenter().latitude,circle.getCenter().longitude,distance);
if (distance[0] <= circle.getRadius()) {
Toast.makeText(this, "User Enter Circle", Toast.LENGTH_SHORT).show();
}
然而它没有工作..
谢谢你的帮助
解决方案
所以最后感谢@Axiumin,我做到了:
@Override
public void onLocationChanged(Location location) {
userLocationMarker.setPosition(new LatLng(location.getLatitude(), location.getLongitude()));
Location userLocation = new Location("userLocation");
userLocation.setLatitude(location.getLatitude());
userLocation.setLongitude(location.getLongitude());
Location circleLocation = new Location("circleLocation");
circleLocation.setLatitude(circle.getCenter().latitude);
circleLocation.setLongitude(circle.getCenter().longitude);
float distance = userLocation.distanceTo(circleLocation);
if (distance <= 70){ // If distance is less than 70 Meters
}
}
推荐阅读
- google-cloud-platform - Pyspark:将 csv 写入 Google Cloud Storage
- symfony - 重做 symfony 上的所有迁移
- c# - X509Certificate2:判断证书私钥是否属于硬件设备,是否需要PIN
- ajax - 示例 Wordpress AJAX 调用表示成功,但没有传递它应该传递的数据
- powershell - 使用 Powershell 脚本删除不需要的文件和文件夹
- javascript - DOM 是用什么语言编写的?
- ios - iOS 生产崩溃 - EXC_BAD_ACCESS / KERN_INVALID_ADDRESS / CFDictionaryGetValue + 80
- eclipse - TFS Eclipse Pending Changes 未显示已编辑的文件
- sql - *BigQuery 存储过程中的参数
- python - 如何存储数字