【问题标题】:Want to know about google map pop ups or snippet upon exact location想知道确切位置的谷歌地图弹出窗口或片段
【发布时间】:2019-10-15 12:42:58
【问题描述】:

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

【问题讨论】:

  • 你的问题不是很清楚。首先,您说“靠近确切位置”(如果是,在什么距离内?),然后您说“在确切(用户)位置”。您可能永远不会在确切的位置,因为如果您距离确切位置的纬度/经度 15-30 英尺,您的纬度/经度可能会有所不同。您可能想尝试检查用户的位置何时在目标位置的 1 英里范围内。您可以通过调用 Google Map API 来获取此信息,以获取从当前位置到目标的路线。那么,你想要什么样的弹出窗口?地图标记?
  • 谢谢兄弟...弹出窗口是地图标记。

标签: java android google-maps


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2012-02-08
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多