2017-01-23 15 views
7

Tôi đang cố gắng đặt vị trí của người dùng trên bản đồ sao cho nó nằm khoảng 1/3 đường từ dưới cùng của màn hình và khi bản đồ quay, nó sẽ xoay quanh điểm.Thay đổi Google Map Offset Center

Cách gần nhất tôi có để đạt được điều này là sử dụng phương pháp setPadding(), điều này làm cho bản đồ rung lắc khi xoay, vì điểm trung tâm của 'nổi' xung quanh vị trí thực sự của nó. Có vẻ khá xấu xí

int mapHeight = mapView.getHeight(); 
googleMap.setPadding(0, mapHeight/5, 0, 0); 

Có cách nào tốt hơn để làm điều này không?

Sửa: Giải thích trong hình dưới đây

enter image description here

+0

Có lẽ đây sẽ giúp bạn: http://stackoverflow.com/questions/41469392/lock-google-maps-on-users -location/41618422 # 41618422 –

+0

Tôi không thấy cách câu trả lời đó sẽ cho phép tôi khóa vị trí của người dùng đến một vị trí khác với ở trung tâm của bản đồ. – Dportology

+0

Bạn có thể giải thích tốt hơn một chút về những gì bạn đang cố gắng làm không? Có lẽ một hình ảnh ... –

Trả lời

13

Bạn không cần miếng đệm không

Thay đổi MapPoint X và giá trị Y như bạn cần, bạn có thể gọi đây là nơi bạn muốn! có thể bên trong của bạn onLocationChanged như changeOffsetCenter(location.getLatitude(),location.getLongitude());

public void changeOffsetCenter(double latitude,double longitude) { 
      Point mappoint = mGoogleMap.getProjection().toScreenLocation(new LatLng(latitude, longitude)); 
      mappoint.set(mappoint.x, mappoint.y-100); // change these values as you need , just hard coded a value if you want you can give it based on a ratio like using DisplayMetrics as well 
      mGoogleMap.animateCamera(CameraUpdateFactory.newLatLng(mGoogleMap.getProjection().fromScreenLocation(mappoint))); 
     } 

đầu ra:

enter image description here

+0

làm thế nào để sử dụng cho hai điểm với LatLngBounds? – ZeroOne

+0

@ ZeroOne câu hỏi của bạn không được giải thích rõ ràng? bạn có thể có một điểm trung tâm là những gì bạn đang yêu cầu? –

+0

về cơ bản, làm thế nào để làm điều đó cho nhiều điểm đánh dấu đó là tái định vị chúng ở dưới cùng của bản đồ? – ZeroOne

Các vấn đề liên quan