根据条件Android为Google地图绘制折线

时间:2014-08-13 10:05:58

标签: android google-maps google-polyline

我试图在给定的标记之间绘制折线,这些标记保存在arraylist(poisMap)中。根据我的研究,我创建了以下代码。我没有错误也没有线,但标记都是可见的。

我如何设置折线方法以使其正常工作?

private void setUpMap() {
            for (int i = 0; i < poisMap.size(); i++) {
                latitude = poisMap.get(i).getLatitudePoi();
                if (latitude == 0) {
                    Log.i("debug", "latitude null");
                }
                longitude = poisMap.get(i).getLongitudePoi();
                poiTitle = poisMap.get(i).getTitle();
                mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
                PolylineOptions routeDraw = new PolylineOptions().add(new LatLng(latitude,longitude)).width(5).color(Color.BLUE);
                Polyline polyline = mMap.addPolyline(routeDraw);
            }
            latitudeZoom = poisMap.get(0).getLatitudePoi();
            longitudeZoom = poisMap.get(0).getLongitudePoi();
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
            mMap.setMyLocationEnabled(true);

        }

2 个答案:

答案 0 :(得分:1)

private void setUpMap() {
PolylineOptions routeDraw = new PolylineOptions().width(5).color(Color.BLUE);
        for (int i = 0; i < poisMap.size(); i++) {
            latitude = poisMap.get(i).getLatitudePoi();
            if (latitude == 0) {
                Log.i("debug", "latitude null");
            }
            longitude = poisMap.get(i).getLongitudePoi();
            poiTitle = poisMap.get(i).getTitle();
            mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
            routeDraw.add(new LatLng(latitude,longitude))

        }
    Polyline polyline = mMap.addPolyline(routeDraw);
        latitudeZoom = poisMap.get(0).getLatitudePoi();
        longitudeZoom = poisMap.get(0).getLongitudePoi();
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
        mMap.setMyLocationEnabled(true);
    }

其他

private void setUpMap() {
    LatLng[] latlngarray = new LatLng[poisMap.size()];
        for (int i = 0; i < poisMap.size(); i++) {
            latitude = poisMap.get(i).getLatitudePoi();
            if (latitude == 0) {
                Log.i("debug", "latitude null");
            }
            longitude = poisMap.get(i).getLongitudePoi();
            poiTitle = poisMap.get(i).getTitle();
            mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
            latlngarray[i]= new LatLng(latitude, longitude);

        }
    PolylineOptions routeDraw = new PolylineOptions().add(latlngarray).width(5).color(Color.BLUE);
    Polyline polyline = mMap.addPolyline(routeDraw);
        latitudeZoom = poisMap.get(0).getLatitudePoi();
        longitudeZoom = poisMap.get(0).getLongitudePoi();
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
        mMap.setMyLocationEnabled(true);
    }

答案 1 :(得分:0)