Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 双开关箱工作不正常。谷歌地图形状绘图_Google Maps_Switch Statement_Polygons_Popupmenu - Fatal编程技术网

Google maps 双开关箱工作不正常。谷歌地图形状绘图

Google maps 双开关箱工作不正常。谷歌地图形状绘图,google-maps,switch-statement,polygons,popupmenu,Google Maps,Switch Statement,Polygons,Popupmenu,我想创建弹出菜单,其中包括:选择地图类型,选择形状与城市的地图上绘制的墙 我的问题: 我不知道如何清理一次拾取的形状(或将其切换为无,方法无关紧要) 如何使我的地图在更改形状时不再加载 public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch(item.getItemId()){ case R.id.mediewal: shape = new Pol

我想创建弹出菜单,其中包括:选择地图类型,选择形状与城市的地图上绘制的墙

我的问题:

  • 我不知道如何清理一次拾取的形状(或将其切换为无,方法无关紧要)
  • 如何使我的地图在更改形状时不再加载

    public boolean onOptionsItemSelected(MenuItem item) {
     int id = item.getItemId();
    
         switch(item.getItemId()){
    
     case R.id.mediewal:
         shape = new PolygonOptions();
         mMap.addPolygon(shape);
             break;
    
     case R.id.swedish:
         shape = new PolygonOptions()
        .add(new LatLng(53.426685, 14.565516),
                new LatLng(53.427519, 14.565268),
                ................................
                new LatLng(53.427003, 14.565636))
        .strokeColor(0xB3A60307)
        .fillColor(0xB3670000)
        .strokeWidth(8)
        .geodesic(true);
        mMap.addPolygon(shape);
    
        shape = new PolygonOptions()
        .add(new LatLng(53.420158, 14.557578),
                new LatLng(53.420285, 14.557832),
                ................................
                new LatLng(53.419972, 14.557818))
        .strokeColor(0xB3A60307)
        .fillColor(0xB3670000)
        .strokeWidth(8)
        .geodesic(true);
    
         mMap.addPolygon(shape);
         break;
    
    case R.id.prussian:
         shape = new PolygonOptions();
         mMap.addPolygon(shape);
         break;
     case R.id.none:
         shape = new PolygonOptions();
         mMap.addPolygon(shape);
         break;
    
     }
    
    
     switch(item.getItemId()){
     case R.id.normal_map:
         mapType = GoogleMap.MAP_TYPE_NORMAL;
         break;
    
     case R.id.satellite_map:
         mapType = GoogleMap.MAP_TYPE_SATELLITE;
         break;
    
     case R.id.terrain_map:
         mapType = GoogleMap.MAP_TYPE_TERRAIN;
         break;
    
     case R.id.hybrid_map:
         mapType = GoogleMap.MAP_TYPE_HYBRID;
         break;
     }
    
    
     mMap.setMapType(mapType);
     return super.onOptionsItemSelected(item);
    }
    
当然,我这里只放了一个测试形状。目前它的工作原理是这样的:我可以选择maptype和pick shape,但除了再次进入“菜单”和“地图”之外,没有其他方法来清理形状


任何帮助都将不胜感激

通常避免反复加载地图我已经移动了
mMap.setMapType(mapType)。从
Return
call中删除了ofc此项

为了勾选形状,我调用
mMap.clear()
,它从地图中删除所有形状和标记。这对每个人来说都不是完美的解决方案,但对我来说已经足够了

我认为,要形成一种形状,我们应该称之为(带有复选框):


记住初始化形状,例如,
private Polygon polygon2

相关问题:您使用的是什么库?我错过了“绘制后如何删除所有形状”非常感谢!我对android一无所知。我解决了添加mMap.clear()的问题,它可以删除地图上的所有线条、点和形状。我把它放在“无”的情况下。地图仍在重新加载,但总的来说,我有我想要的。更重要的是,API描述中的多边形绘制部分并没有描述whis方法,而是在其他章节中描述。主题可能已关闭,抱歉占用您的时间。
 if(item.isChecked()){
         item.setChecked(false);
         polygon2.remove()
         ;}
     else{
         item.setChecked(true);
         polygon2 = mMap.addPolygon(shape2);
         }
         break;