Showing
7 changed files
with
175 additions
and
16 deletions
... | @@ -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 | ... | ... |
app/src/debug/res/values/google_maps_api.xml
0 → 100644
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> |
-
Please register or login to post a comment