我正在尝试从添加到GoogleMap的点添加折线。它们应该在道路上显示(设置为.geodesic(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 List,但从未成功。如果有人可以帮助我,我将非常高兴。也许还有一个主意,为什么不将这些线绘制为测地线。
您的问题出在以下循环中:
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]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句