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

Posted

技术标签:

【中文标题】根据Android条件为Google地图绘制折线【英文标题】:Draw Polyline for Google map by for condition Android 【发布时间】:2014-08-13 10:05:58 【问题描述】:

我试图在给定标记之间绘制一条折线,这些标记保存在数组列表 (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);

        

【问题讨论】:

您的代码中的drawLine 在哪里? 也许这就是问题所在 - drawLine 是什么? 【参考方案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);
    

【讨论】:

【参考方案2】:

如果您使用谷歌地图,请勾选此项 [http://wptrafficanalyzer.in/blog/drawing-driving-route-directions-between-two-locations-using-google-directions-in-google-map-android-api-v2/][1]

【讨论】:

谢谢,但如果我没看错的话,我的代码也是这样写的,不是吗?

以上是关于根据Android条件为Google地图绘制折线的主要内容,如果未能解决你的问题,请参考以下文章

如何在路线谷歌地图v2 android上绘制交互式折线

如何在谷歌地图的折线中点绘制标记?

谷歌地图 android 上的折线用于每次位置更改、新折线或 setPoints?

如何根据 rgw 距离在 android 中沿一条线在 Google Maps 折线上添加标记?

折线在模拟器上崩溃

Android Google Maps:使用折线在多边形中切孔