· 4 years ago · Sep 01, 2021, 08:10 AM
1package com.sendiribuat.mymap;
2
3import androidx.appcompat.app.AppCompatActivity;
4import android.os.Bundle;
5import android.widget.Toast;
6
7import com.huawei.hms.location.FusedLocationProviderClient;
8import com.huawei.hms.location.LocationCallback;
9import com.huawei.hms.location.LocationRequest;
10import com.huawei.hms.location.LocationServices;
11import com.huawei.hms.location.SettingsClient;
12import com.huawei.hms.maps.HuaweiMap;
13import com.huawei.hms.maps.MapView;
14import com.huawei.hms.maps.MapsInitializer;
15import com.huawei.hms.maps.OnMapReadyCallback;
16import com.huawei.hms.maps.model.MapStyleOptions;
17import com.huawei.hms.site.api.SearchService;
18
19import com.huawei.hms.site.api.model.SearchStatus;
20import com.huawei.hms.site.api.model.Site;
21import com.huawei.hms.site.widget.SearchFragment;
22import com.huawei.hms.site.widget.SiteSelectionListener;
23
24public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {
25
26 //location
27 LocationCallback mLocationCallback;
28
29 LocationRequest mLocationRequest;
30
31 private FusedLocationProviderClient mFusedLocationProviderClient;
32
33 private SettingsClient mSettingsClient;
34
35 private static final String TAG = "MapActivity";
36 // Huawei map.
37 private HuaweiMap hMap;
38
39 private MapView mMapView;
40
41 private static final String MAPVIEW_BUNDLE_KEY = "MapViewBundleKey";
42
43 // Declare a SearchService object.
44 private SearchService searchService;
45
46 @Override
47 protected void onCreate(Bundle savedInstanceState) {
48 super.onCreate(savedInstanceState);
49 setContentView(R.layout.activity_map);
50
51 //Location
52 mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
53 mSettingsClient = LocationServices.getSettingsClient(this);
54 mLocationRequest = new LocationRequest();
55 // Sets the interval for location update (unit: Millisecond)
56 mLocationRequest.setInterval(5000);
57 // Sets the priority
58 mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
59
60 //ActionBar
61 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
62
63 // Obtain a MapView instance.
64 mMapView = findViewById(R.id.mapView);
65 Bundle mapViewBundle = null;
66 if (savedInstanceState != null) {
67 mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);
68 }
69
70 MapsInitializer.setApiKey("CwEAAAAArRiKi8qPyawJgHDtu1SFpfqBzA0FZJ3sh+5YPMx3s3SsLJgPLEIrLFp9V3tkmSq0lYvRhRmnu9eCizo6h1a7syhICyQ=");
71 mMapView.onCreate(mapViewBundle);
72 // Obtain a map instance.
73 mMapView.getMapAsync(this);
74
75 SearchFragment fragment = (SearchFragment) getSupportFragmentManager().findFragmentById(R.id.widget_fragment);
76// Set the API key of SearchFragment.
77 fragment.setApiKey("CwEAAAAArRiKi8qPyawJgHDtu1SFpfqBzA0FZJ3sh+5YPMx3s3SsLJgPLEIrLFp9V3tkmSq0lYvRhRmnu9eCizo6h1a7syhICyQ=");
78 fragment.setOnSiteSelectedListener(new SiteSelectionListener() {
79 @Override
80 public void onSiteSelected(Site data) {
81 Toast.makeText(getApplication(), data.getName(), Toast.LENGTH_LONG).show();
82 }
83 @Override
84 public void onError(SearchStatus status) {
85 Toast
86 .makeText(getApplication(), status.getErrorCode() + "\n" + status.getErrorMessage(),
87 Toast.LENGTH_LONG)
88 .show();
89 }
90 });
91 }
92
93 @Override
94 public void onMapReady(HuaweiMap map) {
95 hMap = map;
96 // Enable the my-location layer.
97 hMap.setMyLocationEnabled(true);
98 // Enable the my-location icon.
99 hMap.getUiSettings().setMyLocationButtonEnabled(true);
100
101 MapStyleOptions style;
102 style = MapStyleOptions.loadRawResourceStyle(this, R.raw.map_style);
103 hMap.setMapStyle(style);
104 }
105
106 @Override
107 protected void onStart() {
108 super.onStart();
109 mMapView.onStart();
110 }
111
112 @Override
113 protected void onStop() {
114 super.onStop();
115 mMapView.onStop();
116 }
117
118 @Override
119 protected void onDestroy() {
120 super.onDestroy();
121 mMapView.onDestroy();
122 }
123
124 @Override
125 protected void onPause() {
126 mMapView.onPause();
127 super.onPause();
128 }
129
130 @Override
131 protected void onResume() {
132 super.onResume();
133 mMapView.onResume();
134 }
135}