0

Ich entwickle eine Android App für Übung, um die Google Maps API besser zu verstehen. In diesen Apps möchte ich einen Marker anzeigen und wenn Android die aktuelle Position des Benutzers kennt, möchte ich es auf den Maps anzeigen. Nach dem Google-Tutorial mache ich es. Aber ich zweifle daran, wie ich die Karten besser erhalten und die Google API-Client-Verbindung herstellen kann. Im Tutorial https://developers.google.com/maps/documentation/android-api/current-places-tutorial erstellt der Entwickler die Karte nur, wenn der Google API-Client erfolgreich verbunden ist. Ist es richtig, in meinem Fall so vorzugehen? In meinem Fall ist es wichtig, einige Markerpositionen auf den Karten zu zeigen und nur wenn es möglich ist, auch die aktuelle Benutzerposition anzuzeigen? In meinen Gedanken hätte ich das Gegenteil gemacht: vor dem Erstellen von Karten und nur in Karten bereitwilliger Rückruf macht die GoogleApiClient-Verbindung. (Ich denke, die Api-Client-Verbindung nur dann benötigt wird, um die aktuelle Position Position richtig zu machen?)Erstellt die Karte nur, wenn der GoogleApiClient erfolgreich verbunden ist?

Im Tutorial sie auf diese Weise tun:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ..... 
     buildGoogleApiClient(); 
     mGoogleApiClient.connect(); 
     .... 
    } 
    /** 
    * Builds a GoogleApiClient. 
    * Uses the addApi() method to request the Google Places API and the Fused Location Provider. 
    */ 
    private synchronized void buildGoogleApiClient() { 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .enableAutoManage(this /* FragmentActivity */, 
         this /* OnConnectionFailedListener */) 
       .addConnectionCallbacks(this) 
       .addApi(LocationServices.API) 
       .addApi(Places.GEO_DATA_API) 
       .addApi(Places.PLACE_DETECTION_API) 
       .build(); 
     createLocationRequest(); 
    } 

@Override 
    public void onConnected(Bundle connectionHint) { 
     getDeviceLocation(); 
     // Build the map. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    */ 
    @Override 
    public void onMapReady(GoogleMap map) { 
     .... do stuff....} 

ich auf folgende Weise getan hätte:

Antwort

1

Nur wenn die Google Play-Dienstverbindung aktiviert wurde, wird die Karte in das Gerät geladen und Sie können Ihre Markierungen nicht plotten, wenn die Karte nicht geladen wurde. Daher ist es nicht möglich, Karten ohne zu erstellen Google Play-Dienste.

+0

Warum in diesem Tutorial https://developers.google.com/maps/documentation/android-api/map-with-marker der Entwickler die Erstellung der Karten ohne eine Google Play-Dienst-Verbindung zeigt (tut es nicht Aufruf an mGoogleApiClient.connect();)? – aeroxr1

+1

Leider kann ich Ihre Frage nicht verstehen ... – raasesh

+0

In diesem Tutorial zeigt der Entwickler die Karten an und fügt Marker hinzu, ohne eine Google API-Client-Verbindung herzustellen Erweitern Sie den Aufruf von mGoogleApiClient.connect();). Ich nehme an die appi client verbindung ist nur um den standort zu bekommen, oder ich vermute falsch? Allerdings habe ich die Frage im ersten Post bearbeitet, vielleicht ist jetzt mehr klar :) – aeroxr1

Verwandte Themen