在Android GoogleMap api 2中向PolylineOptions添加点不起作用



我正在尝试从我添加到GoogleMap的点添加多段线。它们应该显示在道路上(设置为.测地线(true)。当我从xml中只添加两个点时,会画一条线,但它不是测地线。。。但真正的问题是:如果我试图添加XML中的所有点,应用程序根本不起作用。有人知道我的代码可能出了什么问题吗?

XML文件:

    <?xml version="1.0" encoding="utf-8"?>
 <resources>
 <string-array name="coordinates">
    <item name="waypoint1">50.991185 , 7.131250</item>
    <item name="waypoint2">50.990601 , 7.131534</item>
    <item name="waypoint3">50.991678 , 7.130603</item>
    <item name="waypoint4">51.000614 , 7.137122</item> 
    <item name="waypoint5">51.003929, 7.146833</item> 
    <item name="waypoint6">51.003853, 7.146931</item> 
    <item name="waypoint7">51.003697, 7.147666</item> 
    <item name="waypoint8">51.003964, 7.148090</item> 
    <item name="waypoint9">51.003982, 7.148470</item> 
 </string-array> 
   </resources>

无效的方法:

    private void drawline(){
    String[] coordinates = getResources().getStringArray(R.array.coordinates);
    List<LatLng> waypoints = new ArrayList<LatLng>();
    LatLng[] latlng = new LatLng[coordinates.length];

    for(int i=0;i < coordinates.length;i++){
        String coordinate[] = coordinates[i].split(",");
        double x = Double.parseDouble(coordinate[i]);
        double y = Double.parseDouble(coordinate[i]);
        latlng[i] = new LatLng(x,y);    
    } 
    for (int i=0; i < coordinates.length; i++){
    waypoints.add(latlng[i]);   
    }
    PolylineOptions options = new PolylineOptions()
        .color(Color.BLUE)
        .geodesic(true)
        .width(5)
        .addAll(waypoints);
    Polyline pfad = mMap.addPolyline(options);
    }

我尝试了很多不同的方法将坐标保存为LatLng列表,但都没有成功。如果有人能帮助我,我会非常高兴。也许还有一个想法,为什么这些线没有被画成大地测量线。

您的问题在这个循环中:

for(int i=0;i < coordinates.length;i++){
    String coordinate[] = coordinates[i].split(",");
    double x = Double.parseDouble(coordinate[i]);
    double y = Double.parseDouble(coordinate[i]);
    latlng[i] = new LatLng(x,y);    
}

你用逗号分隔坐标(这没关系),但你读错了索引。使用这个替代:

double x = Double.parseDouble(coordinate[0]);
double y = Double.parseDouble(coordinate[1]);

最新更新