亲爱的,
我有一个覆盖整个屏幕的地图视图。在它的顶部,有一个视图寻呼机。 视图寻呼机由两部分组成,顶部40%和底部60%,顶部只是透明视图。
在滑动视图寻呼机时,地图上显示的标记应位于透明顶视图中间的40%。
此图片描述了这个故事:
如何实现这一目标? 我试过这个,但没有运气:
public void FollowVehicle(clsFollowMode vehicle){
final LatLng vehiclePosition = new LatLng(vehicle.getLatitude(), vehicle.getLongtitude());
Marker vehicleMarker = myGMap.addMarker(new MarkerOptions()
.position(vehiclePosition)
.title(vehicle.getDeviceName())
.snippet(String.valueOf(vehicle.getSpeed()))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_vehicle_follow)));
float zoom_lvl = myGMap.getCameraPosition().zoom;
double dpPerdegree = 256.0*Math.pow(2, zoom_lvl)/170.0;
double screen_height = (double) mapContainer.getHeight();
double screen_height_30p = -20.0*screen_height/100.0;
double degree_30p = screen_height_30p/dpPerdegree;
LatLng centerlatlng = new LatLng( vehiclePosition.latitude + degree_30p, vehiclePosition.longitude );
myGMap.animateCamera( CameraUpdateFactory.newLatLngZoom( centerlatlng, 15 ), 1000, null);
}
有任何帮助吗?上述解决方案found here。
此致
答案 0 :(得分:0)
如果我理解正确,那么您的问题就是您将地图设置为全屏碎片,并在此基础上放置了ViewPager
。因此,当您以标记为中心时,地图会执行此操作,但标记位于ViewPager
。
你可以通过使用GoogleMap.setPadding
方法欺骗地图,使其认为它的尺寸更小,你可以在这里阅读更多相关内容:
https://developers.google.com/maps/documentation/android/map#map_padding