gpt4 book ai didi

android - 向多边形添加点会在 Google Maps Android 中生成星形

转载 作者:行者123 更新时间:2023-11-30 03:08:37 25 4
gpt4 key购买 nike

我尝试在 Android 中创建一个闭合多边形,如果用户触摸屏幕并向该多边形添加一个新点,该多边形就会展开。但是我得到的不是区域,而是一个星形,它使用第一个坐标作为中心点。

我使用了以下代码:

@Override
public void onMapClick(LatLng latLng)
{

googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
//Toast.makeText(this,latLng.toString(),Toast.LENGTH_SHORT).show();
if(shape==null)
{
shape=googleMap.addPolygon(new PolygonOptions()
.add(latLng)
.strokeColor(Color.RED));
//line.setGeodesic(true);
}
else
{
List<LatLng> points=shape.getPoints();
points.add(latLng);
shape.setPoints(points);
}
}

我应该改变什么?

最佳答案

问题是自动关闭功能。它会自动添加第一个坐标以使多边形闭合。

在这里您可以看到每次点击如何添加点数:

01-25 18:48:59.976  12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:04.367 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ -------------------
01-25 18:49:04.367 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:04.375 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (16.29905262358862,-38.32033362239599)
01-25 18:49:09.312 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ -------------------
01-25 18:49:09.312 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:09.312 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (16.29905262358862,-38.32033362239599)
01-25 18:49:09.312 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:09.312 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (26.115986226379576,-1.0547062754631042)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ -------------------
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (16.29905262358862,-38.32033362239599)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (26.115986226379576,-1.0547062754631042)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-15.284186084328875,-28.12501810491085)
01-25 18:49:12.421 12761-12761/com.example.GoogleMapsTest W/DEBUG﹕ lat/lng: (-25.79989178579966,15.46873524785042)

所以如果你想制作一个动态多边形,通过添加这条线删除自动添加的点:

 if(points.size()>2)
points.remove(points.size()-2);

关于android - 向多边形添加点会在 Google Maps Android 中生成星形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21353237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com