Ich bin neu in der Entwicklung von Android mit dem Google Maps API. Ich war in der Lage, eine Karte einzurichten und die grundlegende Funktionalität zu testen, aber ich habe Probleme, die in der Dokumentation gezeigte Logik in meinen eigenen Code zu implementieren.Wie kann ich die Traffic-Ebene von Google Maps einbeziehen?
Ich habe recherchiert und gefunden durch die Google-Dokumentation Sie die Karte überprüfen müssen, wenn Verkehrsdaten durch die Verwendung verfügbar:
public final boolean isTrafficEnabled()
und ruft dann die Methode:
public final boolean isTrafficEnabled() {
return mMap.isTrafficEnabled();
}
public final void setTrafficEnabled(boolean enabled) {
mMap.setTrafficEnabled(enabled);
}
Ich bin Ich bin mir nicht sicher, wie ich das umsetzen soll, da ich neu in der Entwicklung bin. Ich fand in einer anderen Dokumentation Quelle folgendes Beispiel:
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);
Dennoch kann ich nicht scheinen, um herauszufinden, wie man es richtig zu machen. Muss ich das Manifest-XML in irgendeiner Weise bearbeiten oder ist dies alles aus mainActivity geschehen? Hier ist mein voller Aktivitätscode:
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);
}
}
Die Karte lädt, aber es zeigt nicht jede Art von Verkehr. Jede und jede Hilfe würde sehr geschätzt werden; Vielen Dank im Voraus.
Können Sie es mit einem fest codierten Ort wie NYC versuchen? Google Maps hat keine Verkehrsdaten für alle Länder! –
Ja, Sir; Ich kann die Karte ohne ein Problem mit den Koordinaten einer Stadt in den USA laden. Ich hart in meine XML-Manifest-Datei codiert; soll ich das stattdessen in der Mainactivity erklären? –
Sie müssen Ihren Standort ermitteln, um Verkehrsdaten für diesen bestimmten Standort anzuzeigen. Bitte überprüfe meine Antwort. –