📅  最后修改于: 2020-10-11 04:02:56             🧑  作者: Mango
Android提供了将Google地图集成到我们的应用程序中的功能。 Google地图显示您的当前位置,导航位置方向,搜索位置等。我们还可以根据需要自定义Google地图。
有四种不同类型的Google地图,以及根本没有地图的可选地图。他们每个人在地图上都给出不同的看法。这些地图如下:
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
Google Map API提供了几种有助于自定义Google Map的方法。这些方法如下:
Methods | Description |
---|---|
addCircle(CircleOptions options) | This method add circle to map. |
addPolygon(PolygonOptions options) | This method add polygon to map. |
addTileOverlay(TileOverlayOptions options) | This method add tile overlay to the map. |
animateCamera(CameraUpdate update) | This method moves the map according to the update with an animation. |
clear() | This method removes everything from the map. |
getMyLocation() | This method returns the currently displayed user location. |
moveCamera(CameraUpdate update) | This method reposition the camera according to the instructions defined in the update. |
setTrafficEnabled(boolean enabled) | This method set the traffic layer on or off. |
snapshot(GoogleMap.SnapshotReadyCallback callback) | This method takes a snapshot of the map. |
stopAnimation() | This method stops the camera animation if there is any progress. |
让我们创建一个在我们的应用程序中集成Google地图的示例。为此,我们选择Google Maps Activity。
复制google_map_api.xml文件中的网址以生成Google地图密钥。
将复制的URL粘贴到浏览器中。它将打开以下页面。
单击创建API密钥以生成API密钥。
单击创建API密钥后,它将生成显示以下屏幕的我们的API密钥。
将此生成的API密钥复制到我们的google_map_api.xml文件中
要在MapsActivity.java类中获取GoogleMap对象,我们需要实现OnMapReadyCallback接口并覆盖onMapReady()回调方法。
package example.com.mapexample;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
}
在AndroidManifest.xml文件中添加以下用户权限。
在build.gradel文件中添加以下依赖项。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.google.android.gms:play-services-maps:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
输出量