
如果Googlemap上有折线并且在地图上执行了点击,那么如何检查该点击是否在折线上或其他位置?
polyline line = GoogleMap.addpolyline(new polylineoptions() .add(new LatLng(51.2, 0.1), new LatLng(51.7, 0.3)) .wIDth(5) .color(color.RED));GoogleMap.setonMapLongClickListener(new OnMapLongClickListener() { }});解决方法:
不幸的是,没有折线点击监听器这样的东西,所以你必须听取地图上的点击并检查是否在你的任何折线上注册了点击.您还必须保存对添加到地图中的折线的引用.
这是一个计算是否存在距离点击约100米的折线的示例.
mMap.setonMapClickListener(new GoogleMap.OnMapClickListener() { @OverrIDe public voID onMapClick(LatLng clickCoords) { for (polylineoptions polyline : mpolylines) { for (LatLng polyCoords : polyline.getPoints()) { float[] results = new float[1]; Location.distanceBetween(clickCoords.latitude, clickCoords.longitude, polyCoords.latitude, polyCoords.longitude, results); if (results[0] < 100) { // If distance is less than 100 meters, this is your polyline Log.e(TAG, "Found @ "+clickCoords.latitude+" "+clickCoords.longitude); } } } }});找到折线后,您可以将该距离保存为float mindistance;然后循环通过其他折线来检查是否有更近的折线.
为了使这更加精确,您可以在每次触摸时获得缩放级别并乘以所需的距离.像100 *(22 – mMap.getCameraposition().zoom)(你需要在较低的缩放级别使用更大的距离).
祝好运!
总结以上是内存溢出为你收集整理的android – 如何检测折线上的点击全部内容,希望文章能够帮你解决android – 如何检测折线上的点击所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)