java - 想知道确切位置的谷歌地图弹出窗口或片段
问题描述
我想在谷歌地图上开发一个应用程序,当我靠近确切位置时,它可以通过用户设置的一些信息通知我。那么我可以获得一个链接,当我在确切的(用户)位置时如何获得弹出窗口?
解决方案
您首先需要启用位置管理器以开始获取用户的当前位置。然后,每次用户的位置更新时,位置管理器都会调用 onLocationChanged() 方法。在这里,您需要检查用户当前位置与目标位置之间的距离。如果它们在您选择的任何距离内,那么您可以显示地图标记。这是一个如何做到这一点的小例子:
@Override
public void onLocationChanged(Location location) {
float distanceInMeters = destLocation.distanceTo(location);
// Distance in miles
double distance_to_dest = (distanceInMeters/1609.344);
int distance_to_dest_int = (int)(distance_to_dest * 100);
distance_to_dest = ((double)distance_to_dest_int/100.00);
tvMilesToGo.setText(String.format("%.2f", distance_to_dest) + "mi");
// About 1/10th of a mile
if ((distanceInMeters > 149) && (distanceInMeters < 176)) {
// I played an alarm sound when close to the target destination
//if (alarmPlayer.isPlaying()) {
// alarmPlayer.stop();
//}
//alarmPlayer.start();
Marker marker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(destLocation.getLatitude(), destLocation.getLongitude()))
.title(“Arrived”)
.snippet(“You have arrived at your destination!”)
.icon(red_descriptor));
Marker.showInfoWindow;
}
}
请注意,在您的情况下,您可能只想添加一次标记,因此,您可能希望在将标记添加到地图后设置标记,例如 markerIsVisible = true ,然后在添加标记之前检查 if ( markerIsVisible == false) {添加标记,markerIsVisible = true}
推荐阅读
- wordpress-gutenberg - 如何使用 php $content 在 Gutenberg 版本 4 中渲染 InnerBlocks
- eclipse - 从代理后面,我可以在 Eclipse 市场中找到东西,但无法安装它们
- javascript - mac中的端口转发用于本地角度开发
- r - 循环中的 TryCatch - R
- elasticsearch - 如何将 GCP 上的 Kubernetes Engine 连接到外部 Google Cloud Storage Bucket?
- c++ - 在 C++ 中使用 Cstrings 反转字符串
- javascript - JavaScript 使用变量而不是属性
- yocto - 将 /deploy/rpm 中的库包含到 Yocto 映像中
- node.js - 无法将 response.data 分配给 nodejs 中的变量,但在 console.log() 中
- spring-mvc - 使用Java代码以编程方式推送消息的websocket