simbologia significan que los llegar google etiquetas ejemplos custom como colores android google-maps google-maps-api-2

android - llegar - que significan los colores en google maps



¿Cómo puedo incluir la capa de tráfico de google maps? (2)

Soy nuevo en el desarrollo de Android con la API de Google Maps. He podido configurar un mapa y probar la funcionalidad básica, pero tengo problemas para implementar la lógica que se muestra en la documentación en mi propio código.

He investigado y encontrado a través de la documentación de Google que debe verificar el mapa si los datos de tráfico están disponibles mediante:

public final boolean isTrafficEnabled()

y luego llamando al método:

public final boolean isTrafficEnabled() { return mMap.isTrafficEnabled(); } public final void setTrafficEnabled(boolean enabled) { mMap.setTrafficEnabled(enabled); }

No estoy exactamente seguro de cómo implementar esto, ya que soy completamente nuevo en el desarrollo. Encontré en otra fuente de documentación el siguiente ejemplo:

var map = new google.maps.Map(document.getElementById(''map-canvas''), mapOptions); var trafficLayer = new google.maps.TrafficLayer(); trafficLayer.setMap(map);

}

google.maps.event.addDomListener(window, ''load'', initialize);

Sin embargo, parece que no puedo encontrar la manera de hacerlo correctamente. ¿Tengo que editar el XML del manifiesto de alguna manera o todo esto se hace desde mainActivity? Aquí está mi código de actividad completo:

package example.testdevice; import android.app.Dialog; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; public class MainActivity extends FragmentActivity { private static final int GPS_ERRORDIALOG_REQUEST = 9001; GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (servicesOK()) { //checks if APK is available; if it is, display Map setContentView(R.layout.activity_map); if (initMap()){ Toast.makeText(this, "Ready to Map", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Map not available!", Toast.LENGTH_SHORT).show(); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } public boolean servicesOK() { int isAvailable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); //pass this as context if (isAvailable == ConnectionResult.SUCCESS) { return true; } else if (GooglePlayServicesUtil.isUserRecoverableError(isAvailable)) { Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvailable, this, GPS_ERRORDIALOG_REQUEST); //error code, activity, request code dialog.show(); } else { Toast.makeText(this, "Can''t connect to Google Play Services", Toast.LENGTH_SHORT).show(); } return false; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } private boolean initMap() { if (mMap == null) { SupportMapFragment mapFrag = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); // reference to support map fragment mMap = mapFrag.getMap(); } return (mMap != null); } public final boolean isTrafficEnabled() { return mMap.isTrafficEnabled(); } public final void setTrafficEnabled(boolean enabled) { mMap.setTrafficEnabled(enabled); }

}

El mapa se carga pero no muestra ningún tipo de tráfico. Cualquier ayuda sería apreciada grandemente; gracias de antemano.


Para poder mostrar datos de tráfico, debe tener en cuenta los siguientes problemas:

  1. Asegúrese de que su ubicación actual se detecta en Google Map

  2. Asegúrese de que su Google Map tenga datos de tráfico disponibles para su ubicación actual.

También puedes probar el siguiente código. Inicializa el mapa correctamente y luego establece los datos de tráfico después de detectar su ubicación actual.

private void setUpMapIfNeeded() { // Do a null check to confirm that we have not already instantiated the map. if (mMap == null) { // Try to obtain the map from the SupportMapFragment. mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); mMap.setMyLocationEnabled(true); // Check if we were successful in obtaining the map. if (mMap != null) { mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { @Override public void onMyLocationChange(Location arg0) { // TODO Auto-generated method stub mMap.addMarker(new MarkerOptions().position(new LatLng(arg0.getLatitude(), arg0.getLongitude())).title("It''s Me!")); //load the traffic now googleMap.setTrafficEnabled(true); } }); } } }


Pruebe el siguiente código en su actividad en la que desea cargar el mapa:

private GoogleMap googleMap; protected LocationManager locationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { // Loading map initilizeMap(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); googleMap.setTrafficEnabled(true); // Enable / Disable zooming controls googleMap.getUiSettings().setZoomControlsEnabled(true); // Enable / Disable my location button googleMap.getUiSettings().setMyLocationButtonEnabled(true); // Enable / Disable Compass icon googleMap.getUiSettings().setCompassEnabled(true); // Enable / Disable Rotate gesture googleMap.getUiSettings().setRotateGesturesEnabled(true); // Enable / Disable zooming functionality googleMap.getUiSettings().setZoomGesturesEnabled(true); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); } catch (Exception e) { e.printStackTrace(); } }