【问题标题】:Setting an Area on Google Map using Android使用 Android 在 Google 地图上设置区域
【发布时间】:2015-08-02 06:05:41
【问题描述】:

我想在 Android Studio 中使用 Google Maps Activity 仅显示特定区域,它会告诉用户是否超出范围/范围。

Specific Area 的示例, 地图链接来自How to highlight an area on Google Maps Without Javascript?

我该怎么做?

【问题讨论】:

    标签: android google-maps android-maps-v2


    【解决方案1】:

    您要达到的目标称为“锁定范围”。 在 Android 中,这不能自动或直接完成,但您必须做一些“技巧”。

    您有两个选择: 按整个范围锁定(区域必须完全在可见范围内) 按地图中心锁定(地图中心必须在特定范围内)。

    为此,您必须使用 googleMap 对象的“onCameraChangeListener”: https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener

     map.setOnCameraChangeListener(new OnCameraChangeListener() {
                                @Override
                                public void onCameraChange(CameraPosition cameraPosition) {
                                            checkBounds();
                                }
                            });
    

    其中 check bounds 是对某个区域或其一部分的检查:

    public void checkBounds() {
      // allowedbounds must be generated only once, in onCreate, because it will be a fixed area
      LatLng actualCenter = map.getProjection().getVisibleRegion().getCenter();
      if (allowedBounds.contains(actualCenter)){
        return;
      }else{
    

    //如果不遵守边界,则返回允许的边界 map.animateCamera(CameraUpdateFactory.newLatLngBounds(allowedBounds)); } }

    如果您想检查是否遵守完全限制,您必须编写自己的检查方法并更改 if 条件。 可以在此处找到该方法的提示: https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/geometry/Bounds.java

    【讨论】:

    • 感谢您回答我的问题,我很感激,现在我将研究您的答案并尝试在我的项目中实施它。
    猜你喜欢
    • 2016-01-22
    • 2013-03-30
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多