📜  如何在 Android 中的 Google 地图中绘制折线?

📅  最后修改于: 2022-05-13 01:55:30.241000             🧑  作者: Mango

如何在 Android 中的 Google 地图中绘制折线?

许多 Android 应用程序中都使用了 Google 地图。在使用 Google 地图时,您会在此应用中使用地图时看到许多修改。当我们在不同的应用程序(例如 OLA 和 Uber)中使用 Google 地图时,我们将看到地图上绘制的线条和路线。在本文中,我们将看看在 Android 中的 Google 地图上绘制折线

我们将在本文中构建什么?

我们将构建一个简单的应用程序,我们将在其中显示我们的地图。在这张地图上,我们将显示布里斯班、塔姆沃思和纽卡斯尔这三个地点之间的多边形。下面给出了一个示例图像,以了解我们将在本文中做什么。请注意,我们将使用Java语言来实现这个项目。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!

分步实施

第 1 步:创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。确保在创建新项目时选择地图活动

第 2 步:生成用于使用 Google 地图的 API 密钥

要为地图生成 API 密钥,您可以参考 如何生成用于在 Android 中使用 Google 地图的 API 密钥。为 Google 地图生成 API 密钥后。我们必须将此密钥添加到我们的项目中。要在我们的应用程序中添加此密钥,请导航到values 文件夹 > google_maps_api.xml文件,在第 23 行,您必须在YOUR_API_KEY的位置添加您的 API 密钥。

第 3 步:在 Android 中的 Google 地图上添加折线

转到MapsActivity。 Java文件,参考如下代码。下面是MapsActivity 的代码。 Java文件。代码中添加了注释以更详细地理解代码。

Java
import android.graphics.Color;
import android.os.Bundle;
  
import androidx.fragment.app.FragmentActivity;
  
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.PolylineOptions;
  
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  
    private GoogleMap mMap;
      
    // below are the latitude and longitude of 4 different locations.
    LatLng TamWorth = new LatLng(-31.083332, 150.916672);
    LatLng NewCastle = new LatLng(-32.916668, 151.750000);
    LatLng Brisbane = new LatLng(-27.470125, 153.021072);
  
    @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);
    }
  
    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // inside on map ready method
        // we will be displaying polygon on Google Maps.
        // on below line we will be adding polyline on Google Maps.
        mMap.addPolyline((new PolylineOptions()).add(Brisbane, NewCastle, TamWorth, Brisbane).
                        // below line is use to specify the width of poly line.
                        width(5)
                        // below line is use to add color to our poly line.
                        .color(Color.RED)
                        // below line is to make our poly line geodesic.
                        .geodesic(true));
        // on below line we will be starting the drawing of polyline.
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(Brisbane, 13));
    }
}


添加此代码后。现在运行您的应用程序并查看应用程序的输出。

输出: