ver usar ubicacion simbologia significan que nombres los las google etiquetas correcta como colores celular calles android android-maps

android - usar - que significan los colores en google maps



Cómo mover la posición de la brújula de la API de Google Maps de Android (6)

En el mapa 2.0 api.

// change compass position if (mapView != null && mapView.findViewById(Integer.parseInt("1")) != null) { // Get the view View locationCompass = ((View) mapView.findViewById(Integer.parseInt("1")).getParent()).findViewById(Integer.parseInt("5")); // and next place it, on bottom right (as Google Maps app) RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) locationCompass.getLayoutParams(); // position on right bottom layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); layoutParams.setMargins(0, 160,30, 0); // 160 la truc y , 30 la truc x }

¿Alguien sabe si puedes cambiar la posición de la brújula dentro del mapa?

Todo lo que puedo encontrar es cómo habilitarlo o deshabilitarlo . Pero necesito moverlo hacia abajo un poco para que mi superposición no lo obstruya.


Las soluciones basadas en relleno funcionan para compensaciones pequeñas, pero que yo sepa, no hay API expuesta que nos permita cambiar la "gravedad" horizontal de la brújula de izquierda a derecha, como lo hace la aplicación de Google Maps:

Tenga en cuenta que si aplicó una gran cantidad de relleno izquierdo para mover la brújula a la derecha en su propia aplicación, el logotipo de Google en la parte inferior izquierda también se desplazará hacia la derecha.


Sé que ha pasado mucho tiempo desde que se hizo la pregunta, pero me encontré con este problema hace unos días que solucioné el problema de esta manera:

try { assert mapFragment.getView() != null; final ViewGroup parent = (ViewGroup) mapFragment.getView().findViewWithTag("GoogleMapMyLocationButton").getParent(); parent.post(new Runnable() { @Override public void run() { try { for (int i = 0, n = parent.getChildCount(); i < n; i++) { View view = parent.getChildAt(i); RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) view.getLayoutParams(); // position on right bottom rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0); rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP,0); rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); rlp.rightMargin = rlp.leftMargin; rlp.bottomMargin = 25; view.requestLayout(); } } catch (Exception ex) { ex.printStackTrace(); } } }); } catch (Exception ex) { ex.printStackTrace(); }

En este ejemplo pongo la brújula en la esquina derecha. Debe asegurarse de que su mapFragment se crea cuando haga esto, le sugiero que ejecute su código en el método "onMapReady" de su MapFragment.


Sé que no puedes cambiar la posición de la brújula, pero puedes desactivarla y construir la tuya privada.

Ver ejemplo aquí



@Override public void onMapReady(GoogleMap map) { try { final ViewGroup parent = (ViewGroup) mMapView.findViewWithTag("GoogleMapMyLocationButton").getParent(); parent.post(new Runnable() { @Override public void run() { try { Resources r = getResources(); //convert our dp margin into pixels int marginPixels = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, r.getDisplayMetrics()); // Get the map compass view View mapCompass = parent.getChildAt(4); // create layoutParams, giving it our wanted width and height(important, by default the width is "match parent") RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(mapCompass.getHeight(),mapCompass.getHeight()); // position on top right rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0); rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP); rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0); //give compass margin rlp.setMargins(marginPixels, marginPixels, marginPixels, marginPixels); mapCompass.setLayoutParams(rlp); } catch (Exception ex) { ex.printStackTrace(); } } }); } catch (Exception ex) { ex.printStackTrace(); } }