随便给出两个地点的经纬度,要求Android手机屏幕上显示出这两个地方,就是说自动计算缩放级数,请问如何处理?
final double midlat = (maxlat+minlat)/2;
final double midlon = (maxlon+minlon)/2;
LatLng ll = new LatLng(midlat, midlon);
double jl = DistanceUtil.getDistance(new LatLng(maxlat, maxlon), new LatLng(minlat, minlon));
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, calcZoomByDistance(jl));
mBaiduMap.setMapStatus(u);
这是我的相应的代码,两个点的经纬度分别是:(minlat, minlon), (maxlat, maxlon)
计算出中心点是:(midlat, midlon),计算出两个点的距离是:jl = ? (米)
请问如何通过距离计算出所需要的缩放级数:calcZoomByDistance(jl)
需要完成 calcZoomByDistance 函数
------解决思路----------------------
mMapView.setXSpan((int) ((right - left) * 1.1E6));
mMapView.setYSpan((int) ((top - bottom) * 1.1E6));
right是你两个地点中较大经度,left是你两个地点中较小的经度,top是你两个地点中较大的纬度,bottom是你两个地点中较小的纬度。具体显示可自己调整。
------解决思路----------------------
获取当前缩放度,然后根据比例尺和距离计算应该缩放的比例。
------解决思路----------------------
1楼正解!!