/* * Copyright (C) 2013 Maciej Górski * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package pl.mg6.android.maps.extensions.demo; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.androidmapsextensions.ClusterGroup; import com.androidmapsextensions.ClusterOptions; import com.androidmapsextensions.ClusterOptionsProvider; import com.androidmapsextensions.ClusteringSettings; import com.androidmapsextensions.GoogleMap; import com.androidmapsextensions.Marker; import com.androidmapsextensions.MarkerOptions; import com.google.android.gms.maps.model.BitmapDescriptor; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import java.util.List; public class ClusterGroupsFragment extends BaseFragment { private static final int DYNAMIC_GROUP = ClusterGroup.FIRST_USER; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.simple_map, container, false); } @Override protected void setUpMap() { map.setClustering(new ClusteringSettings().clusterOptionsProvider(new ClusterOptionsProvider() { @Override public ClusterOptions getClusterOptions(List<Marker> markers) { float hue; if (markers.get(0).getClusterGroup() == DYNAMIC_GROUP) { hue = BitmapDescriptorFactory.HUE_ORANGE; } else { hue = BitmapDescriptorFactory.HUE_ROSE; } BitmapDescriptor blueIcon = BitmapDescriptorFactory.defaultMarker(hue); return new ClusterOptions().icon(blueIcon); } })); map.addMarker(new MarkerOptions().position(new LatLng(0, 0))); map.addMarker(new MarkerOptions().position(new LatLng(3, 1))); map.addMarker(new MarkerOptions().position(new LatLng(2, 0.5))); map.addMarker(new MarkerOptions().position(new LatLng(0.5, 2))); BitmapDescriptor greenIcon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN); final Marker single = map.addMarker(new MarkerOptions().position(new LatLng(10, 10)).icon(greenIcon).clusterGroup(ClusterGroup.NOT_CLUSTERED)); map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override public void onMapClick(LatLng position) { single.setPosition(position); } }); map.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { @Override public void onMapLongClick(LatLng position) { BitmapDescriptor yellowIcon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW); map.addMarker(new MarkerOptions().position(position).icon(yellowIcon).clusterGroup(DYNAMIC_GROUP)); } }); } }