我已經創建了一個應用程序,其中所有的標記都具有CustomInfoWindow.But我的應用程序中的標記數量越來越大。所以我看到了關於map-utils庫並決定實現它。我想實現標記聚類屬性。之前實現標記集羣屬性我有這樣的代碼在我的應用程序:如何在google maps v2中使用android map utils庫實現InfoWindow?
private void drawMarkerAndLine(ArrayList<StatusData> result) throws Exception{
try {
if (result.size() != 0) {
PolygonOptions options = new PolygonOptions()
.fillColor(0x330000FF)
.strokeColor(Color.BLUE)
.strokeWidth(3);
for (int i = 0; i < result.size(); i++) {
String status = result.get(i).getStatus();
String name = result.get(i).getPersonName();
String email = result.get(i).getPersonMail();
name += "/" + email;
Double lat = Double.parseDouble(result.get(i).getLatitude());
Double lng = Double.parseDouble(result.get(i).getLongitude());
if (status.length() > 20) {
status = status.substring(0, 20);
status += "...";
}
LatLng ll = new LatLng(lat, lng);
options.add(ll);
map.addMarker(new MarkerOptions().position(ll).title(name).snippet(status));
if (i == 0) {
map.moveCamera(CameraUpdateFactory.newLatLngZoom(ll, 15));
}
}
map.addPolygon(options);
}
}catch (Exception e){
Toast.makeText(getActivity(),"Internet Connection Error.",Toast.LENGTH_SHORT).show();
}
現在我希望留樣的信息窗口點擊我以前所有的性質,map.setInfoWindowAdapter和others.Just我想實現當我縮放該out標記會聚集在一起,放大時會顯示標記,我可以像我以前那樣點擊infowindow。我試圖改變我的這個類,但是徒勞無功。
private void drawMarkerAndLine(ArrayList<StatusData> result) throws Exception{
try {
if (result.size() != 0) {
/*PolygonOptions options = new PolygonOptions()
.fillColor(0x330000FF)
.strokeColor(Color.BLUE)
.strokeWidth(3);*/
for (int i = 0; i < result.size(); i++) {
String status = result.get(i).getStatus();
String name = result.get(i).getPersonName();
String email = result.get(i).getPersonMail();
name += "/" + email;
Double lat = Double.parseDouble(result.get(i).getLatitude());
Double lng = Double.parseDouble(result.get(i).getLongitude());
if (status.length() > 20) {
status = status.substring(0, 20);
status += "...";
}
LatLng ll = new LatLng(lat, lng);
//options.add(ll);
MyItem item = new MyItem(lat,lng);
clusterManager.addItem(item);
map.addMarker(new MarkerOptions().position(ll).title(name).snippet(status));
if (i == 0) {
map.moveCamera(CameraUpdateFactory.newLatLngZoom(ll, 15));
}
}
//map.addPolygon(options);
}
}catch (Exception e){
Toast.makeText(getActivity(),"Internet Connection Error.",Toast.LENGTH_SHORT).show();
}
我曾嘗試在其他活動這個和它的作品只是下面code.But當我無法實現只在我前面的代碼羣集屬性。
public View onCreateView(final LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.home_map_activity, null, false);
mapFrag = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
map = mapFrag.getMap();
map.setMyLocationEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
map.getUiSettings().setCompassEnabled(true);
map.getUiSettings().setMyLocationButtonEnabled(true);
map.getUiSettings().setAllGesturesEnabled(true);
map.setTrafficEnabled(true);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446),10));
mClusterManager = new ClusterManager<MyItem>(getActivity(), map);
map.setOnCameraChangeListener(mClusterManager);
drawMarker();
return v;
}
private void drawMarker() {
double lat = 51.5145160;
double lng = -0.1270060;
// Add ten cluster items in close proximity, for purposes of this example.
for (int i = 0; i < 10; i++) {
double offset = i/60d;
lat = lat + offset;
lng = lng + offset;
MyItem offsetItem = new MyItem(lat, lng);
mClusterManager.addItem(offsetItem);
}
}
如何我在以前的代碼信息窗口點擊其他不變實現這個,因爲我不需要任何clustermanager的onclick監聽器?提前致謝。
讓我清楚地知道,您正在將標記聚集在一起,但是當您點擊標記時它什麼也不做,對嗎? – MauriF