Minggu, 24 Mei 2015

Materi Pertemuan 14 (Map 1)

Latitude, Longitude
Layout
 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="@string/lonText"
        >      
    </TextView>
    <TextView
        android:text="unknown"
        android:id="@+id/longitutdeTxt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >      
    </TextView>
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="@string/latText"
        >      
    </TextView>
    <TextView
        android:text="unknown"
        android:id="@+id/latitudeTxt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >      
    </TextView>

</LinearLayout>

Java
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private LocationManager lm;
    private LocationListener locListener;
    private TextView latTxt,lonTxt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        latTxt = (TextView) findViewById(R.id.latitudeTxt);
        lonTxt = (TextView) findViewById(R.id.longitutdeTxt);
        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locListener = new MyLocationListener();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 200, locListener);
    }
    private class MyLocationListener implements LocationListener {
        public void onLocationChanged(Location loc) {
            if (loc != null) {
                latTxt.setText(String.valueOf(loc.getLatitude()));
                lonTxt.setText(String.valueOf(loc.getLongitude()));
                Toast.makeText(getBaseContext(), "Location Changed : Lat " + loc.getLatitude() + "lgt: "+loc.getLongitude(), Toast.LENGTH_SHORT).show();
            }
        }
        public void onProviderDisabled(String arg0) {}
        public void onProviderEnabled(String arg0) {}
        public void onStatusChanged(String provider, int status, Bundle extras){}
    }
}

Manifest
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


MAP
Layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout>

Java
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;

public class Map2 extends FragmentActivity {
    private GoogleMap map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_supportmapfragment);
        setupMapIfNeeded();
    }

    private void setupMapIfNeeded() {
        if (map == null) {
            FragmentManager fragmentManager = getSupportFragmentManager();
            SupportMapFragment supportMapFragment = (SupportMapFragment) fragmentManager
                    .findFragmentById(R.id.map);
            map = supportMapFragment.getMap();

            if (map != null) {
                setupMap();
            }
        }

    }

    private void setupMap() {
        map.setMyLocationEnabled(true);
        moveToMyLocation();
    }

    private void moveToMyLocation() {
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();

        Location location = locationManager
                .getLastKnownLocation(locationManager.getBestProvider(criteria,
                        false));
        if (location != null) {
            map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
                    location.getLatitude(), location.getLongitude()), 13));
        }
    }

}


Manifest
<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.example.belajarmap.MAPS_RECEIVE" />

    <permission
        android:name="com.example.belajarmap.MAPS_RECEIVE"
        android:protectionLevel="signature" >
    </permission>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />


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

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


Library google_play_services
vending
gms

Tidak ada komentar:

Posting Komentar