无论单击地图的顺序如何,我都希望使用拖放标记创建规则的多边形形状。目前,如果按以下方式单击地图上的多边形以绘制多边形,那么我将面临一个问题,那就是按左上方,右上方,右下方,右下方的顺序工作。如果保持此顺序,则绘制的多边形也非常完美,如果我单击右上,左上,右下,右上角,则绘制的多边形也都非常好。如果当我按顺序更改一个品脱时,它无法绘制适当形状的多边形。
@Override
public void onMarkerDrag(Marker marker) {
Geocoder gc = new Geocoder(MainActivity.this);
LatLng ll = marker.getPosition();
double lat = ll.latitude;
double lng = ll.longitude;
//LatLng latlng = new LatLng(lat, lng);
List<Address> list = null;
try {
list = gc.getFromLocation(lat, lng, 1);
} catch (IOException e) {
e.printStackTrace();
}
if (list != null) {
Address add = list.get(0);
marker.setTitle(add.getLocality());
marker.showInfoWindow();
String id = marker.getId();
marker.setTag(id);
}
for (int i = 0; i < markers.size(); i++) {
if (markers.get(i).getId().equalsIgnoreCase(marker.getId())) {
int position1 = getMarkerId(i);
positions.set(position1, ll);
markers.set(position1, marker);
} else {
Log.i("TAGG", "tag" + markers.get(i).getId() + " " + marker.getId());
}
}
drawPolygon();
String s = String.valueOf(SphericalUtil.computeArea(positions));
Double doubleString = Double.parseDouble(s);
String str = String.valueOf(Math.round(doubleString));
tvArea.setText(str);
tvm2.setEnabled(true);
}