Vâng, mọi điểm đánh dấu trên ứng dụng của tôi sẽ đại diện cho người dùng, vì vậy tôi cần xác định người dùng đó khi tôi nhấp vào cửa sổ thông tin để lấy dữ liệu từ Internet và tôi có thể 't làm cho nó xác định chúng theo tên vì lý do rõ ràng. Có thể thêm thuộc tính bổ sung vào đối tượng điểm đánh dấu không? cảm ơn!Thêm nhận dạng vào điểm đánh dấu trên google maps v2 api cho android
Trả lời
Bạn có thể làm một tấm séc HashMap<Marker, User>
hướng dẫn này: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html
Điều này cần được đánh dấu là câu trả lời đúng. Hoạt động hoàn hảo Dễ dàng hướng dẫn làm theo. – KickingLettuce
Có thể thêm thuộc tính bổ sung vào đối tượng điểm đánh dấu không?
No. Marker
là final
. Ngoài ra, các đối tượng Marker
bạn tạo biến mất nhanh chóng, vì chúng chỉ được sử dụng cho một số IPC đối với ứng dụng Dịch vụ của Google Play. Đối tượng Marker
mà bạn nhận được trong số OnInfoWindowClickListener
của bạn dường như là bản sao được hoàn nguyên.
Tôi có phụ đề trong trường đoạn mã nên đó không phải là tùy chọn.
Chắc chắn là vậy. Lưu trữ phụ đề ở một nơi khác và đặt khóa của bạn cho người dùng của bạn trong phụ đề. Khi bạn hiển thị InfoWindow
từ số InfoWindowAdapter
của mình, hãy kéo phụ đề.
Dưới đây là một giải pháp đơn giản hơn một chút tôi đã thực hiện. Tất cả những gì bạn làm là tạo một InfoWindowAdapter, cái mà bạn muốn chuyển đến cửa sổ trong hàm tạo của nó.
class CustomWindowAdapter implements InfoWindowAdapter{
LayoutInflater mInflater;
private HashMap<Marker, Double> mRatingHash;
public CustomWindowAdapter(LayoutInflater i, HashMap<Marker, Double> h){
mInflater = i;
mRatingHash = h;
}
@Override
public View getInfoContents(Marker marker) {
// Getting view from the layout file
View v = mInflater.inflate(R.layout.custom_info_window, null);
TextView title = (TextView) v.findViewById(R.id.tv_info_window_title);
title.setText(marker.getTitle());
TextView description = (TextView) v.findViewById(R.id.tv_info_window_description);
description.setText(marker.getSnippet());
RatingBar rating = (RatingBar) v.findViewById(R.id.rv_info_window);
Double ratingValue = mRatingHash.get(marker);
rating.setRating(ratingValue.floatValue());
return v;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
Bạn chịu trách nhiệm về bất kỳ dữ liệu nào bạn muốn chuyển đến cửa sổ thông tin, nhưng bạn có thể thấy ở đây rằng tôi đang chuyển băm xếp hạng. Chỉ là một nguyên mẫu và không phải là giải pháp tốt nhất nhưng điều này sẽ khiến mọi người bắt đầu.
Lưu ngày của tôi .. cảm ơn bạn thân – Noman
Tôi không nghĩ rằng nên giữ tham chiếu mạnh mẽ cho các điểm đánh dấu thông qua bản đồ. Vì bạn vẫn sử dụng bộ điều hợp cửa sổ tùy chỉnh của mình để hiển thị nội dung, bạn có thể "lạm dụng" đoạn mã() hoặc tiêu đề() trên MarkerOptions để lưu trữ thông tin của bạn. Cả hai đều là chuỗi, do đó phụ thuộc vào thông tin để lưu trữ, bạn sẽ sử dụng ít bộ nhớ hơn, mặt khác bạn sẽ an toàn khỏi rò rỉ bộ nhớ bằng cách giữ các tham chiếu mạnh mẽ đến các điểm đánh dấu.
cũng vậy, bạn sẽ tương thích với cách Maps quản lý nó liên tục trong các điểm dừng và tiếp tục.
Tôi đang sử dụng lớp bổ sung để liên kết một số thông tin và chức năng với mỗi điểm đánh dấu. Tôi không nghĩ đây là cách tiếp cận tốt nhất, nhưng đó là một lựa chọn. Đặc biệt nếu bạn muốn có nhiều hơn là chỉ thông tin được liên kết với mỗi điểm đánh dấu trên bản đồ. Đây là cấu trúc cơ bản tôi sử dụng cho việc này.
// Make an array list of for all of your things
ArrayList<Thing> things;
class Thing {
long thing_key;
String thing_string;
int thingRadius;
Double coord_long;
Double coord_lat;
Marker marker;
}
// Then to use this to start your list.
things = new ArrayList<>();
// Create the thing object and save all the data
thing = new Thing();
thing.marker = thingMarker;
thing.thing_key = thing_key;
thing.thing_string = thing_string;
thing.radius = Integer.getInteger(thingRadius.getText().toString());
// Save the thing to the thing ArrayList
things.add(thing);
- 1. Google Maps API v2 Android thêm hình dạng có thể drawable làm điểm đánh dấu
- 2. Google maps api v2 phóng to gần điểm đánh dấu
- 3. Đánh dấu bitmap định tâm (Google Maps API Android v2)
- 4. Điểm đánh dấu hoạt ảnh trên Google Maps v2
- 5. Google Maps dành cho Android trung tâm V2 API dấu
- 6. Ẩn cửa sổ thông tin điểm đánh dấu trong android google maps API v2
- 7. Thêm nhiều điểm đánh dấu với infowindows (API Google Maps)
- 8. Có thể hiển thị/ẩn Điểm đánh dấu trong Android Google maps api v2 không?
- 9. API Google Maps Android v2 - cách thay đổi biểu tượng điểm đánh dấu
- 10. Mở thông tinWindow tự động khi thêm điểm đánh dấu Google Maps v2 Android
- 11. API Google Maps Android: Ẩn đoạn mã đánh dấu
- 12. Google android maps api v2 Hiển thị Tiêu đề Đánh dấu Luôn
- 13. Nhận khóa API Google Maps v2
- 14. Đánh dấu di chuyển khi phóng to bằng API Android của Google Maps v2
- 15. Thêm nhiều điểm đánh dấu trên Google Map bằng cách sử dụng api v2
- 16. Google Maps API Nhiều Điểm đánh dấu với Infowindows
- 17. API Google Maps v2: LatLngBounds từ CameraPosition
- 18. Google Maps Android V2 và API hướng
- 19. Phân biệt giữa các điểm đánh dấu khác nhau trong API Maps v2 (số nhận dạng duy nhất)
- 20. cách thêm contentDesctiption vào InfoWindow hoặc điểm đánh dấu trong Android GoogleMaps V2 cho TalkBack
- 21. Thêm chức năng Đánh dấu bằng API Google Maps
- 22. Cách di chuyển điểm đánh dấu trong API Google Maps
- 23. cách di chuyển camra đến điểm đánh dấu cụ thể trong google maps v2 trong android
- 24. API Google Maps v3 recenter bản đồ cho một điểm đánh dấu
- 25. Điểm đánh dấu tùy chỉnh Android Maps v2 có vị trí không chính xác trên zoom
- 26. Thêm bất động sản tùy chỉnh để đánh dấu (Google Map Android API V2)
- 27. Sử dụng SVG cho điểm đánh dấu trong Google Maps?
- 28. URL cho nhiều điểm đánh dấu trong Google Maps
- 29. Vẽ lại bitmap trên Google Maps v2 cho Android
- 30. Javascript và Jquery: Thêm điểm đánh dấu cho Google Maps khi nhấp vào nút
bạn đã thêm điểm đánh dấu như thế nào? như lớp phủ? –
Bạn có thể sử dụng trường đoạn trích của lớp Marker. –
Tôi có một phụ đề trong trường đoạn mã nên đó không phải là một tùy chọn. Bạn có ý nghĩa gì khi lớp phủ? Tôi thêm chúng với map.addMarker (... – vdrg