- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我被难住了;做 ff。如果 LatLng
在 LatLngBounds
内,方法打算返回 true
还是仅在 时返回
是 true
>LatLngincluding
设置的边界的一部分吗?
到目前为止,我的测试效果适得其反;即使 LatLng
在 LatLngBounds
之外,它也会返回 true。
LatLngBounds latLngBounds = // Get the boundaries of a location
LatLng target = cameraPosition.target; // returns the center of the camera
if (!latLngBounds.contains(target)) {
// do processes
}
我所做的是,如果相机在 Polygon
之外平移(我也记录了它),我会显示一条 Toast
消息,但显然,我必须滚动远离用于显示的 Polygon
。
我使用 Polygon.getPoints
作为我的 LatLngBounds
最佳答案
我只是做了一个简单的测试,contains()
方法将对边界内的任何点返回 true,对于它认为是边界外的点将返回 false。
我使用了一个极端的例子,为澳大利亚这个国家设置了边界,并在澳大利亚内部的一个点和旧金山的一个点进行了测试。
界限:
private LatLngBounds AUSTRALIA = new LatLngBounds(
new LatLng(-44, 113), new LatLng(-10, 154));
第一次测试,在澳大利亚境内:
if (AUSTRALIA.contains(new LatLng(-31.693598,147.843026))){
Toast.makeText(MapsActivity.this, "inside bounds", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(MapsActivity.this, "outside bounds", Toast.LENGTH_LONG).show();
}
结果:
然后,用旧金山的一个点进行测试:
if (AUSTRALIA.contains(new LatLng(37.7942635,-122.3955861))){
Toast.makeText(MapsActivity.this, "inside bounds", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(MapsActivity.this, "outside bounds", Toast.LENGTH_LONG).show();
}
结果:
因此,在一个明确的示例中,它看起来像预期的那样工作。
问题是您需要超出边界多远才能使 contains()
方法返回 false。
对于此测试,我没有对 including()
进行任何调用,因此根据文档中的描述,contains()
方法可能会返回 true:
Creates a new bounds based on a southwest and a northeast corner.
The bounds conceptually includes all points where:
the latitude is in the range [northeast.latitude, southwest.latitude]; the longitude is in the range [southwest.longtitude, northeast.longitude] if southwest.longtitude ≤ northeast.longitude; and the longitude is in the range [southwest.longitude, 180) ∪ [-180, northeast.longitude] if southwest.longtitude > northeast.longitude.
如果通过调用 including()
修改边界,文档说明边界将像这样修改:
Returns a new LatLngBounds that extends this LatLngBounds to include the given LatLng. This will return the smallest LatLngBounds that contains both this and the extra point.
In particular, it will consider extending the bounds both in the eastward and westward directions (one of which may cross the antimeridian) and choose the smaller of the two. In the case that both directions result in a LatLngBounds of the same size, this will extend it in the eastward direction.
关于android - LatLngBounds.contains 返回真,即使 LatLng 不在定义的边界内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566536/
我必须用小工具制作 map ,这些小工具从上一点获得电压。我的数据库中有纬度和经度的记录。我使用自定义图标和 windowInfo 在 map 上存储带有标记的小工具,但我想获取上一个点的纬度和经度,
我的任务是查找两个纬度和经度坐标之间的行驶距离。我在[此处][1]找到了此链接,但是,我不确定我是否正确实现了它,因为我收到了错误...... Invalid float: "" GeocodingL
我一直致力于 Android 中的 Google map 服务。我想知道是否有一个实用方法可以给出 LatLng 的方向关于另一个。 我想知道一个点是否在 南还是北 东方还是西方 或两者的组合,各取其
LATLNG 无法将参数类型“LatLng”分配给参数类型“LatLng” The argument type 'LatLng (where LatLng is defined in E:\flutt
目标 知道一个坐标点是否在另外两个坐标之间。 背景 我正在制作一个谷歌地图应用程序,我需要知道某个点是否在两个 LatLng 点(起点和终点)之间。 我正在寻找如下函数: var currentCoo
在行“Location.distanceBetween(LatLng.latitude, LatLng.longitude, circle.getCenter().latitude,circle.ge
我可以使用什么算法/公式来计算距离另一个 LatLng 点 5 米的 LatLng 点?我正在尝试编写一个带有 2 个 LatLng 参数的函数,并让它返回一个 LatLng,该 LatLng 距离第
使用文档示例,我尝试放大特定点。所以我这样做: var latlng = L.latLng(50.5, 30.5); $scope.map.setZoomAround(latlng); $scope.
我有 2 个列表。 double pointY[]={105.45526,105.57364,105.53505,105.45523,105.51962,105.77320} double point
假设我有一个关联的纬度/经度 + 名称的 HashMap,以及一个相同纬度/经度的单独 ArrayList,这些纬度/经度已按距离我当前位置最近的位置排序。如何将 HashMap 排序为与 Array
我需要查明某些 LatLng 是否在 Google map 圈内(其中之一:http://code.google.com/apis/maps/documentation/javascript/over
我正在尝试在当前位置设置标记,因此我尝试将 Location 转换为 LatLng 类: LatLng mCurrentPlace= new LatLng(location.getLatitude()
我正在 Flutter 中使用 Leaflet 完成我的第一个婴儿步骤,因此欢迎耐心和教程 URL 等。 我能找到的每一段示例代码都给了我这个错误: The method 'LatLng' isn't
因此,我开始在我的小应用程序中建立并运行我的 map ,当我尝试放入相机移动时,我遇到了一些小障碍。编译器似乎根本不喜欢 LatLng 类。它给了我这个。 The method LatLng(doub
我正在从 MainActivity 向名为 MapClass 的类发送 IntentService 调用。 MapClass 有一个名为 MapClassInner 的内部类,它计算用户的当前坐标。但
我创建了一个函数来返回纬度和经度。 问题是 alert('outside:') 在 geocoder.geocode 之前触发。 查看this similar example ,这个功能应该工作。
在我更改包名称之前,一切都在我的设备上正常工作...一旦更改 pkg,相机就不会移动到初始 latlng。此外,标记不会显示。 package com.vaishnavismeclass.divyad
我有List有位置(超过 2000 个位置)。每个位置有 100 米的距离。但是列表太大所以我想根据位置优先级过滤一些位置(比如访问最多的位置、著名位置、实体名称、城市名称或其他) 实际上,当用户移动
我在使用 latlng 变量在 Leaflet map 上创建新圆时遇到问题。 我有一个包含和输入半径的表单和一个包含几个位置的选择框,选项如下所示: Place Name 单击保存按钮时,将运行以下
我想在 touchmove 事件(传单 map )中获取触摸点的 LatLng。我没有找到解决这个问题的方法。有什么方法可以获取坐标吗? $(document).on('touchmove', '#m
我是一名优秀的程序员,十分优秀!