首页 > 解决方案 > 想知道确切位置的谷歌地图弹出窗口或片段

问题描述

我想在谷歌地图上开发一个应用程序,当我靠近确切位置时,它可以通过用户设置的一些信息通知我。那么我可以获得一个链接,当我在确切的(用户)位置时如何获得弹出窗口?

标签: javaandroidgoogle-maps

解决方案


您首先需要启用位置管理器以开始获取用户的当前位置。然后,每次用户的位置更新时,位置管理器都会调用 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}


推荐阅读