TTrack_Android – Mapa

Wykorzystanie google maps w Androidzie


 
 
 
 
 

Google Maps

 

Cześć ostatni dzień konkursu a prace nad projektem trwają dalej i będą trwać po zakończeniu dsp:). Do działania mapy potrzebny będzie klucz od googla. W jednym z poprzednich wpisów dotyczących projektu konkursowego opisywałem jak go zdobyć nie będę się powtarzał:). Gdy mamy dostęp do klucza dodajemy go do manifestu projektu w tagu <application>.

 

<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
   android:value="apiKey />

 

Następnie tworzymy fragment w którym wyświetlać będziemy naszą mapę.

 

public class EmployerFragment extends Fragment {
 
   private MapView mapView;
   private GoogleMap googleMap;
 
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View rootView = inflater.inflate(R.layout.employer_fragment, container, false);
 
       mapView = (MapView) rootView.findViewById(R.id.mapView);
       mapView.onCreate(savedInstanceState);
 
       mapView.onResume();
       MapsInitializer.initialize(getActivity().getApplicationContext());
 
       return rootView;
   }
 
   public void setCurrentPosition(final String currentPosLat, final String currentPosLang) {
 
       mapView.getMapAsync(new OnMapReadyCallback() {
           @Override
           public void onMapReady(GoogleMap mMap) {
               googleMap = mMap;
 
               googleMap.setMyLocationEnabled(true);
               LatLng currentPos = new LatLng(Double.parseDouble(currentPosLat), Double.parseDouble(currentPosLang));
 
               googleMap.addMarker(new MarkerOptions().position(currentPos).title("Marker Title").snippet("Marker Description"));
 
               CameraPosition cameraPosition = new CameraPosition.Builder().target(currentPos).zoom(12).build();
               googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
           }
       });
   }

 

Jak widzisz napisałem też metodę setCurretnPosition(String, String) gdzie ustawiamy przykładowy znacznik. Dodajemy również kody do layouty aktywności w której wyświetlać będziemy naszą mape.

 

<fragment
   android:id="@+id/employerFragment"   
   class="info.gert.ttrackandroid.employer.fragments.employerFragment.EmployerFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
</fragment>

 

W aktywności w której chcemy wyświetlić nasz fragment wywołujemy metodę.

 

String currPosition[] = employerPresenter.getCurrentPosition().split(",");
        EmployerFragment fragment = (EmployerFragment) getFragmentManager()
                .findFragmentById(R.id.employerFragment);

        fragment.setCurrentPosition(currPosition[0],currPosition[1]);

 
Możesz przeanalizować kody na githubie. W następnym poście podsumowanie konkursu:).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *