Tôi muốn vẽ Đa giác bàn tay miễn phí trên Bản đồ. Tôi bắt đầu với Google Map đơn giản và vẽ đa giác & nó đang hoạt động bình thường nhưng bây giờ tôi đang tìm cách người dùng có thể vẽ đa giác bằng cách nhấp vào các điểm trên bản đồ và kéo dài điểm giữa đa giác.
bây giờ bản đồ của tôi với đa giác trông như sau:
và tôi muốn thực hiện:
đây là mã của tôi:
public class MapActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
Button save_field;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
// Retrieve the content view that renders the map.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
FrameLayout Frame_map = (FrameLayout) findViewById(R.id.frame_map);
Button btn_draw_State = (Button) findViewById(R.id.btn_draw_State);
final Boolean[] Is_MAP_Moveable = {false}; // to detect map is movable
// Button will change Map movable state
btn_draw_State.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Is_MAP_Moveable[0] = !Is_MAP_Moveable[0];
}
});
}
public GoogleMap getmMap() {
return mMap;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
/*polygon should be declared as member of the fragment class if you want just one polygon at a time*/
final List<LatLng> latLngList = new ArrayList<>(); // list of polygons
final List<Marker> markerList = new ArrayList<>();
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(final LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions(); //create marker options
markerOptions.position(latLng);
markerOptions.title(latLng.latitude + ":" + latLng.longitude);
mMap.clear();
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
Marker marker = mMap.addMarker(markerOptions);
latLngList.add(latLng);
markerList.add(marker);
Polygon polygon = null;
if (polygon != null ) polygon.remove(); // remove the previously drawn polygon
PolygonOptions polygonOptions = new PolygonOptions().addAll(latLngList).clickable(true);
polygon = mMap.addPolygon(new PolygonOptions().addAll(latLngList).fillColor(Color.BLUE).strokeColor(Color.RED));//add new polygon
}
});
save_field = findViewById(R.id.save);
save_field.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MapActivity.this, Save_Fields.class));
finish();
}
});
}
}
Tôi đã thực hiện nhiều Nghiên cứu và Phát triển về chủ đề này nhưng không có cách nào hoàn hảo để thực hiện một điều như vậy trong google Maps. Nếu có ai biết cách thì hãy giúp tôi tìm ra giải pháp. cảm ơn bạn trước :)
error: package rx.functions does not exist
lỗi này