2013-04-19 37 views
6

Khi thêm một số điểm đánh dấu trên bản đồ bằng API Android của Google Maps phiên bản v2, các điểm đánh dấu không được đặt thành đúng vị trí và di chuyển khi thu phóng.Đánh dấu di chuyển khi phóng to bằng API Android của Google Maps v2

Khi phóng to, chúng tiến gần hơn đến đúng vị trí, như thể chúng được dịch bởi một yếu tố liên quan đến thu phóng.

Có vấn đề gì?

Ví dụ phóng to:

enter image description here enter image description here enter image description here

đoạn

public class CenterMapFragment extends Fragment { 

    private GoogleMap mMap; 
    private List<Center> mCenterList; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     return inflater.inflate(R.layout.center_map_fragment, container, false); 
    } 

    @Override 
    public void onActivityCreated (Bundle savedInstanceState){ 

     super.onActivityCreated(savedInstanceState); 

     mMap = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 

     if (mMap != null) { 

      mCenterList = MyApplication.dbHelper.getAllCenter(); 

      for(Center center : mCenterList){ 

       mMap.addMarker(new MarkerOptions().position(new LatLng(center.lat, center.lng)).icon(BitmapDescriptorFactory 
           .fromResource(R.drawable.myicon))); 

      } 
     } 

    } 

} 

bố trí

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

Bây giờ khi bạn thêm ảnh chụp màn hình, tôi có thể nói rằng vấn đề chắc chắn trong neo –

+0

Có bất kỳ khoảng trắng nào trên biểu tượng của bạn không? – Leaudro

+0

cùng một vấn đề bất kỳ giải pháp? –

Trả lời

5

Đối dấu tùy chỉnh bạn cũng cần sử dụng

MarkerOptions.anchor(float u, float v)

trong đó mô tả nơi là điểm con trỏ vào điểm đánh dấu. Theo mặc định, điểm này nằm ở giữa của hình ảnh.

+0

BitmapDescriptor không có phương thức neo. Đó là một MarkerOptions và là: "Điểm trên hình ảnh sẽ được đặt ở vị trí LatLng của điểm đánh dấu. Điều này mặc định ở giữa phần dưới cùng của hình ảnh." Nó không nên thay đổi vị trí. – jul

+0

@jul xin lỗi, thực sự - đây là phương thức của 'MarkerOptions'. Dù sao, đây là những gì bạn đang tìm kiếm. "Nó không nên sửa đổi vị trí" - có nghĩa là vị trí của hình ảnh sẽ không ảnh hưởng đến kinh độ thực tế và kinh độ trên bản đồ. Nó chỉ dịch hình ảnh trên u * 100 phần trăm bên phải và trên v * 100 phần trăm đến đỉnh. –

+0

@jul cũng có thể hữu ích nếu bạn cung cấp ảnh chụp màn hình về sự cố của mình. –

0

Để hiển thị thông tin cửa sổ, bạn phải sử dụng setInfoWindowAdapter trên "mMap" của bạn hoặc đặt tiêu đề cho điểm đánh dấu của bạn.

Giới thiệu về biểu tượng, dường như biểu tượng này đang di chuyển khi bạn thu nhỏ, nhưng neo luôn trỏ đến cùng một vị trí trên bản đồ. Bạn có thể đặt một neo nếu hình ảnh bạn đang sử dụng không theo mẫu biểu tượng của Google (neo ở giữa botton của hình ảnh). Đối với điều đó, bạn phải sử dụng MarkerOptions' method anchor(u,v)

+0

Như @jul đã đề cập - 'anchor' là một phương thức của' MarkerOptions'. Tôi chỉ quên nó) –

+0

đã chỉnh sửa, cảm ơn :) – Leaudro

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