Hacer polígonos que se pueden hacer clic en Google Maps (para Android)
Tengo LatLngs continua de varias áreas en una ciudad. ¿Hay alguna manera que puedo crear polígonos clickable con él. Una vez el camino a seguir sería para
- Generar polígonos con los LatLngs disponibles (Quiero mostrar visualmente los polígonos en el mapa con codificación de color)
- Configurar
setOnMapClickListener
. - Hacer un punto dentro de la prueba de polígono.
Entiendo que esto es muy ingenuo. ¿Cuáles son los enfoques alternativos?
- El método de instantánea de GoogleMap devuelve una imagen blanca
- Android Google Maps v2: en el oyente de clics no responde
- Strange ArrayIndexOutOfBoundsException en algunos dispositivos al dibujar polilíneas
- Google Maps Android API v2 - Interactive InfoWindow (como en los mapas originales de google google)
- Google Maps API v2 dibuja parte del círculo en MapFragment
- Android error Dx problema salida de escritura: ya preparado Error generando archivo final: Encontró archivo duplicado para APK: classes.dex
- Osmdroid, API de Google Maps v2 y fragmentos
- Google Maps Android API v2 ClassNotFound Error de tiempo de ejecución
- ¿Cómo activar el evento onClick de un marcador en un Google Maps V2 para Android?
- La aplicación para Android se está bloqueando debido a V / GoogleSignatureVerifier: Firma no válida
- Android Dibujar polilíneas con flecha en el mapa de google con la ruta de dirección
- ¿Cómo implementar la funcionalidad de búsqueda para Google Map Api V2 Android?
- Ampliación de Google Maps Android API v2 para proporcionar panorámicas y eventos de zoom
Aquí es cómo lo hice.
Polygon polygon = getMap().addPolygon(new PolygonOptions() .add(new LatLng(12.780712, 77.770956), new LatLng(12.912006, 77.229738), new LatLng(12.412006, 77.629738), new LatLng(12.912006, 77.229738)) .strokeColor(0xFF00AA00) .fillColor(0x2200FFFF) .strokeWidth(2) ); polygon.setClickable(true); getMap().setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() { public void onPolygonClick(Polygon polygon) { mClusterManager = new ClusterManager<MyItem>(getApplicationContext(), getMap()); getMap().setOnCameraChangeListener(mClusterManager); getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(getMap().getCameraPosition().target, getMap().getCameraPosition().zoom)); try { readItems(); } catch (JSONException e) { Toast.makeText(getApplicationContext(), "Problem reading list of markers.", Toast.LENGTH_LONG).show(); } } });
Espero que ayude.
Usted no necesita volverse loco por tener polígono que se puede hacer clic. Lo hice hace tiempo pero ahora, hay un api para eso:
GoogleMap.setOnPolygonClickListener (OnPolygonClickListener)
Puede utilizarlo fácilmente:
GoogleMap mymap =....//init your map mymap.setOnPolygonClickListener(new OnPolygonClickListener(){ void onPolygonClick(Polygon polygon){ //do whatever with polygon! } });
Al agregar Polígono al mapa. Primero crea un objeto PolygonOptions y agrega algunos puntos a él. Estos puntos formarán el contorno del polígono. A continuación, agregue el polígono al mapa llamando a GoogleMap.addPolygon (PolygonOptions) que devolverá un objeto Polygon. Este fragmento de código siguiente muestra cómo agregar polígono a un mapa.
// Instantiates a new Polygon object and adds points to define a rectangle PolygonOptions rectOptions = new PolygonOptions() .add(new LatLng(37.35, -122.0), new LatLng(37.45, -122.0), new LatLng(37.45, -122.2), new LatLng(37.35, -122.2), new LatLng(37.35, -122.0)); // Get back the mutable Polygon Polygon polygon = myMap.addPolygon(rectOptions);
De forma predeterminada, los polígonos no se pueden hacer clic. Puede habilitar y deshabilitar la posibilidad de Polygon.setClickable(boolean)
llamando a Polygon.setClickable(boolean)
.
Como dijo N Dorigatti . Al usar OnPolygonClickListener para escuchar eventos de clics, llame a GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)
.
Cuando un usuario hace clic en un polígono, recibirá una devolución de llamada onPolygonClick (polígono). Consulte este documento para obtener más información.
- Android Volley biblioteca no funciona con 204 y la respuesta del cuerpo vacío
- Obtener el resultado del cursor y convertirlo en una cadena para TextView