【问题标题】:google map v2 get visible area in type km square谷歌地图v2以km平方类型获取可见区域
【发布时间】:2014-05-12 07:04:16
【问题描述】:

我正在尝试查找屏幕上可见的区域。我可以找到屏幕的边界,但我无法计算平方千米类型的面积?有没有可能的计算方法?

googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {
        @Override
        public void onCameraChange(CameraPosition position) {
            LatLngBounds bounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
            getAreaInTheScreen(bounds);
        }

        private double getAreaInTheScreen(LatLngBounds bounds) {
                double northLat=bounds.northeast.latitude;
                double northLong=bounds.northeast.longitude;
                double southLat=bounds.southwest.latitude;
                double southLong=bounds.southwest.longitude;


                    /// it must return an area

                return area;
        }
    });

【问题讨论】:

    标签: android google-maps latitude-longitude area


    【解决方案1】:

    当然可以。 你有所有需要的信息。 所以首先你应该计算从一个点到另一个点的距离,比如说 西南和东南。 西南坐标 (southLat,southLong) 东南坐标(southLat、northLong),纬度保持不变。

    Location l = new Location("southwest");
    l.setLatitude(southLat);
    l.setLongitude(southLong);
    Location l2 = new Location("southeast");
    l.setLatitude(southLat);
    l.setLongitude(northLong);
    double height = l.distanceTo(l2);
    

    矩形的宽度也是如此,点将是西南和西北

    西南坐标(southLat,southLong) 西北坐标(northLat, southLong),经度保持不变。 我们可以使用第一个位置对象“l”,因为点是相同的。

    Location l3 = new Location("northwest");
    l3.setLatitude(northLat);
    l3.setLongitude(southLong);
    double width = l.distanceTo(l3);
    
    double area = width*height;
    

    对不起,如果有某种语法错误,我正在使用电话

    【讨论】:

    • 非常感谢@alexandrius。我不确定将 LatLng 转换为米是否如此简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2011-12-22
    相关资源
    最近更新 更多