손장민

Map Fragment Added

...@@ -38,6 +38,7 @@ dependencies { ...@@ -38,6 +38,7 @@ dependencies {
38 compile 'com.android.support:design:25.3.1' 38 compile 'com.android.support:design:25.3.1'
39 compile 'com.squareup.picasso:picasso:2.5.2' 39 compile 'com.squareup.picasso:picasso:2.5.2'
40 compile 'com.google.firebase:firebase-messaging:11.0.2' 40 compile 'com.google.firebase:firebase-messaging:11.0.2'
41 + compile 'com.google.android.gms:play-services-maps:11.0.2'
41 testCompile 'junit:junit:4.12' 42 testCompile 'junit:junit:4.12'
42 } 43 }
43 44
...@@ -46,4 +47,5 @@ dependencies { ...@@ -46,4 +47,5 @@ dependencies {
46 47
47 48
48 49
50 +
49 apply plugin: 'com.google.gms.google-services' 51 apply plugin: 'com.google.gms.google-services'
...\ No newline at end of file ...\ No newline at end of file
......
1 +<resources>
2 + <!--
3 + TODO: Before you run your application, you need a Google Maps API key.
4 +
5 + To get one, follow this link, follow the directions and press "Create" at the end:
6 +
7 + https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=59:2E:80:8C:A4:7F:B6:08:C9:22:B7:C0:21:56:81:70:CB:42:9B:85%3Bcom.example.user.firebaseauthdemo
8 +
9 + You can also add your credentials to an existing key, using these values:
10 +
11 + Package name:
12 + 59:2E:80:8C:A4:7F:B6:08:C9:22:B7:C0:21:56:81:70:CB:42:9B:85
13 +
14 + SHA-1 certificate fingerprint:
15 + 59:2E:80:8C:A4:7F:B6:08:C9:22:B7:C0:21:56:81:70:CB:42:9B:85
16 +
17 + Alternatively, follow the directions here:
18 + https://developers.google.com/maps/documentation/android/start#get-key
19 +
20 + Once you have your key (it starts with "AIza"), replace the "google_maps_key"
21 + string in this file.
22 + -->
23 + <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
24 + AIzaSyCThXzmOil0dxBRQupGmv1YLUi5VXqcr4w
25 + </string>
26 +</resources>
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 - package="com.example.user.firebaseauthdemo"> 3 + package="com.example.user.firebaseauthdemo">
4 4
5 - <user-permission android:name="android.permission.INTERNET" /> 5 + <user-permission android:name="android.permission.INTERNET"/>
6 - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 6 +
7 - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 7 + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
8 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
9 +
10 + <!--
11 + The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
12 + Google Maps Android API v2, but you must specify either coarse or fine
13 + location permissions for the 'MyLocation' functionality.
14 + -->
15 + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
8 16
9 <application 17 <application
10 android:allowBackup="true" 18 android:allowBackup="true"
...@@ -15,18 +23,34 @@ ...@@ -15,18 +23,34 @@
15 android:theme="@style/AppTheme"> 23 android:theme="@style/AppTheme">
16 <activity android:name=".MainActivity"> 24 <activity android:name=".MainActivity">
17 <intent-filter> 25 <intent-filter>
18 - <action android:name="android.intent.action.MAIN" /> 26 + <action android:name="android.intent.action.MAIN"/>
19 27
20 - <category android:name="android.intent.category.LAUNCHER" /> 28 + <category android:name="android.intent.category.LAUNCHER"/>
21 </intent-filter> 29 </intent-filter>
22 </activity> 30 </activity>
23 - <activity android:name=".LoginActivity" /> 31 + <activity android:name=".LoginActivity"/>
24 - <activity android:name=".ProfileActivity" /> 32 + <activity android:name=".ProfileActivity"/>
25 <activity 33 <activity
26 android:name=".Main2Activity" 34 android:name=".Main2Activity"
27 android:label="@string/title_activity_main2" 35 android:label="@string/title_activity_main2"
28 - android:theme="@style/AppTheme.NoActionBar" /> 36 + android:theme="@style/AppTheme.NoActionBar"/>
29 - <activity android:name=".PostActivity"></activity> 37 + <activity android:name=".PostActivity"/>
38 + <!--
39 + The API key for Google Maps-based APIs is defined as a string resource.
40 + (See the file "res/values/google_maps_api.xml").
41 + Note that the API key is linked to the encryption key used to sign the APK.
42 + You need a different API key for each encryption key, including the release key that is used to
43 + sign the APK for publishing.
44 + You can define the keys for the debug and release targets in src/debug/ and src/release/.
45 + -->
46 + <meta-data
47 + android:name="com.google.android.geo.API_KEY"
48 + android:value="@string/google_maps_key"/>
49 +
50 + <activity
51 + android:name=".MapsActivity"
52 + android:label="@string/title_activity_maps">
53 + </activity>
30 </application> 54 </application>
31 55
32 </manifest> 56 </manifest>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -7,22 +7,101 @@ import android.view.LayoutInflater; ...@@ -7,22 +7,101 @@ import android.view.LayoutInflater;
7 import android.view.View; 7 import android.view.View;
8 import android.view.ViewGroup; 8 import android.view.ViewGroup;
9 9
10 +import com.google.android.gms.maps.CameraUpdateFactory;
11 +import com.google.android.gms.maps.GoogleMap;
12 +import com.google.android.gms.maps.MapView;
13 +import com.google.android.gms.maps.OnMapReadyCallback;
14 +import com.google.android.gms.maps.model.LatLng;
15 +import com.google.android.gms.maps.model.MarkerOptions;
16 +
10 /** 17 /**
11 * Created by HYB on 2017. 10. 11.. 18 * Created by HYB on 2017. 10. 11..
12 */ 19 */
13 20
14 -public class Map extends Fragment { 21 +public class Map extends Fragment implements OnMapReadyCallback
22 +{
23 + private MapView mapView = null;
24 +
25 + @Override
26 + public void onCreate(@Nullable Bundle savedInstanceState) {
27 + super.onCreate(savedInstanceState);
28 + }
15 29
16 @Nullable 30 @Nullable
17 @Override 31 @Override
18 - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 32 + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
19 - return inflater.inflate(R.layout.map, container, false); 33 + View layout = inflater.inflate(R.layout.map, container, false);
34 +
35 + mapView = (MapView)layout.findViewById(R.id.mapView);
36 + mapView.getMapAsync(this);
37 +
38 + return layout;
39 + }
40 +
41 + @Override
42 + public void onStart() {
43 + super.onStart();
44 + mapView.onStart();
45 + }
46 +
47 + @Override
48 + public void onStop() {
49 + super.onStop();
50 + mapView.onStop();
51 + }
52 +
53 + @Override
54 + public void onSaveInstanceState(Bundle outState) {
55 + super.onSaveInstanceState(outState);
56 + mapView.onSaveInstanceState(outState);
57 + }
58 +
59 + @Override
60 + public void onResume() {
61 + super.onResume();
62 + mapView.onResume();
63 + }
64 +
65 + @Override
66 + public void onPause() {
67 + super.onPause();
68 + mapView.onPause();
69 + }
70 +
71 + @Override
72 + public void onLowMemory() {
73 + super.onLowMemory();
74 + mapView.onLowMemory();
20 } 75 }
21 76
22 @Override 77 @Override
23 - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 78 + public void onDestroy() {
24 - super.onViewCreated(view, savedInstanceState); 79 + super.onDestroy();
80 + mapView.onLowMemory();
81 + }
82 +
83 + @Override
84 + public void onActivityCreated(@Nullable Bundle savedInstanceState) {
85 + super.onActivityCreated(savedInstanceState);
86 +
87 + //액티비티가 처음 생성될 때 실행되는 함수
25 88
26 - getActivity().setTitle("Map"); 89 + if(mapView != null)
90 + {
91 + mapView.onCreate(savedInstanceState);
92 + }
27 } 93 }
94 +
95 + @Override
96 + public void onMapReady(GoogleMap googleMap) {
97 + LatLng SEOUL = new LatLng(37.56, 126.97);
98 + MarkerOptions markerOptions = new MarkerOptions();
99 + markerOptions.position(SEOUL);
100 + markerOptions.title("서울");
101 + markerOptions.snippet("수도");
102 + googleMap.addMarker(markerOptions);
103 + googleMap.moveCamera(CameraUpdateFactory.newLatLng(SEOUL));
104 + googleMap.animateCamera(CameraUpdateFactory.zoomTo(13));
105 + }
106 +
28 } 107 }
......
...@@ -10,4 +10,9 @@ ...@@ -10,4 +10,9 @@
10 android:text="Terror inform is displayed in here." 10 android:text="Terror inform is displayed in here."
11 android:textAppearance="@style/TextAppearance.AppCompat.Headline" /> 11 android:textAppearance="@style/TextAppearance.AppCompat.Headline" />
12 12
13 + <com.google.android.gms.maps.MapView
14 + android:id="@+id/mapView"
15 + android:layout_width="match_parent"
16 + android:layout_height="match_parent"/>
17 +
13 </LinearLayout> 18 </LinearLayout>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -6,4 +6,5 @@ ...@@ -6,4 +6,5 @@
6 <string name="navigation_drawer_close">Close navigation drawer</string> 6 <string name="navigation_drawer_close">Close navigation drawer</string>
7 7
8 <string name="action_settings">Settings</string> 8 <string name="action_settings">Settings</string>
9 + <string name="title_activity_maps">Map</string>
9 </resources> 10 </resources>
......
1 +<resources>
2 + <!--
3 + TODO: Before you release your application, you need a Google Maps API key.
4 +
5 + To do this, you can either add your release key credentials to your existing
6 + key, or create a new key.
7 +
8 + Note that this file specifies the API key for the release build target.
9 + If you have previously set up a key for the debug target with the debug signing certificate,
10 + you will also need to set up a key for your release certificate.
11 +
12 + Follow the directions here:
13 +
14 + https://developers.google.com/maps/documentation/android/signup
15 +
16 + Once you have your key (it starts with "AIza"), replace the "google_maps_key"
17 + string in this file.
18 + -->
19 + <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
20 + YOUR_KEY_HERE
21 + </string>
22 +</resources>