フラッター-個々のgoogle_maps_flutter ^ 0.5.21マーカーを削除するにはどうすればよいですか?

ジェイク

の開始以来、かなりの変更google_maps_flutterがありました。これは、個々のマーカーを削除するプロセスも変更されたことを意味します。

この質問に対する古いクエリで私が見つけたのは、バージョン〜0.0.1マーカーを削除したことです。

mapController.markers.forEach((marker){
  mapController.removeMarker(marker);
});

エラーが発生するため、これは機能しません。

The getter 'markers' isn't defined for the class 'GoogleMapController'.

そして

The method 'removeMarker' isn't defined for the class 'GoogleMapController'.

これは私がマーカーを追加するために使用するものです:

void _addMarker(LatLng latlang, String title) {

var _width = MediaQuery.of(context).size.width;
var _height = MediaQuery.of(context).size.height;

double _topHeight = 55;

if (_height == 896.0 && _width == 414.0) {
  _topHeight = 83;
} else if (_height == 812.0 && _width == 375.0) {
  _topHeight = 78;
}

double mapsettingsHeight = 225;

if (_topHeight == 55){
  mapsettingsHeight = 225;
} else {
  mapsettingsHeight = 255;
}

if (_markers.contains(title)) {
  print("error");
} else {
  setState(() {
    _markers.add(Marker(
      markerId: MarkerId(title),
      position: latlang,
      infoWindow: InfoWindow(
        title: title,
        snippet: title,
        onTap: () {
          showCupertinoModalPopup(
            context: context,
            builder: (BuildContext context) {
              return Material(
                child: Container(
                  width: _width,
                  height: mapsettingsHeight,
                  decoration: BoxDecoration(
                    color: Color(0xFFF9F9F9).withAlpha(200),
                    borderRadius: BorderRadius.only(topLeft:Radius.circular(10),topRight:Radius.circular(10))
                  ),
                  child: Column(
                    children: <Widget>[
                      Container(
                        width: _width,
                        height: 40,
                        padding: EdgeInsets.all(10),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: <Widget>[
                            Container(
                              height: 20,
                              alignment: Alignment.center,
                              child: Text(title,style:TextStyle(fontFamily:'Helvetica',fontSize:15,color:Colors.black,fontWeight:FontWeight.w600))
                            ),
                            GestureDetector(
                              child: Container(
                                width: 50,
                                height: 50,
                                alignment: Alignment.topRight,
                                child: Icon(Icons.keyboard_arrow_down,size:25,color:Colors.black.withAlpha(100)),
                              ),
                              onTap: () {
                                Navigator.pop(context);
                              }
                            )
                          ],
                        ),
                      ),
                      _customDivider(),
                      Divider(height:10,color:Colors.transparent),
                      Container(
                        width: _width,
                        height: 12.5,
                        padding: EdgeInsets.only(left:10,right:10),
                        child: GestureDetector(
                          child: Text("Edit Marker",style: TextStyle(fontFamily:'Helvetica',fontSize:12.5,color:Colors.blue,fontWeight:FontWeight.w400)),
                          onTap: () {
                            showDialog(
                              context: context,
                              builder: (BuildContext context) {
                                return AlertDialog(
                                  title: TextField(
                                    controller: _locationMarkerTitle,
                                    decoration: InputDecoration(
                                      hintText: 'Name this location',
                                      hintStyle: TextStyle(fontFamily:'Helvetica',fontSize:15,color:Colors.black,fontWeight:FontWeight.w200),
                                    ),
                                  ),
                                  titlePadding: EdgeInsets.all(10),
                                  content: Row(
                                    mainAxisAlignment: MainAxisAlignment.end,
                                    children: <Widget>[
                                      GestureDetector(
                                        child: Text("Submit (this doesn't work!)",style: TextStyle(fontFamily:'Helvetica',fontSize:15,color:Colors.blue,fontWeight:FontWeight.w200)),
                                        onTap: () {
                                          _addMarker(LatLng(_position.latitude,_position.longitude),_locationMarkerTitle.text);
                                          Navigator.pop(context);
                                        }
                                      ),
                                    ],
                                  )
                                );
                              }
                            );
                          }
                        ),
                      ),
                      Divider(height:10,color:Colors.transparent),
                      Container(
                        width: _width,
                        height: 12.5,
                        padding: EdgeInsets.only(left:10,right:10),
                        child: GestureDetector(
                          child: Text("Remove Marker",style: TextStyle(fontFamily:'Helvetica',fontSize:12.5,color:Colors.blue,fontWeight:FontWeight.w400)),
                          onTap: () {
                            setState(() {
                              //where the solution go
                            });
                          }
                        ),
                      ),
                    ],
                  ),
                ),
              );
            }
          );
        }
      ),
      icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueAzure),
    ));
  });
}
}
Ovidiu

build()関数のどこかにGoogleマップウィジェットがあると思います。

GoogleMap(
  markers: _markers,
  ...

リストMarkerから個人を削除して_markers呼び出すsetStateだけGoogleMapで、更新されたマーカーのリストでウィジェットが再構築されます。

編集-作成者のユースケースをより具体的にするために:

MarkerIdはマーカーを一意に識別するため、これらを使用して、削除するマーカーを見つけることができます。

_markers.remove(_markers.firstWhere((Marker marker) => marker.markerId.value == title));

または

_markers.remove(_markers.firstWhere((Marker marker) => marker.markerId == MarkerId(title)));

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フラッター-個々のgoogle_maps_flutter ^ 0.5.21マーカーを削除するにはどうすればよいですか?

分類Dev

フラッターアプリで5分の止められないタイマーを表示するにはどうすればよいですか?

分類Dev

Forループを使用して0,0から5,5までの座標を生成するにはどうすればよいですか?

分類Dev

alpha!= 0のトリップカラープロットからエッジラインを削除するにはどうすればよいですか?

分類Dev

ViewFlipperのタイマーを0にリセットするにはどうすればよいですか

分類Dev

GoogleマップのマーカーでclusterMarkを削除するにはどうすればよいですか?

分類Dev

React.jsでタイマーカウント=== 0のときにボタンを非表示に設定するにはどうすればよいですか?

分類Dev

plotrixパッケージから放射状円グラフの0を削除するにはどうすればよいですか?

分類Dev

Jupiterテーマで5列の行を作成するにはどうすればよいですか?

分類Dev

アラートカラーのブートストラップ4とRubyon Rails5を変更またはカスタマイズするにはどうすればよいですか?

分類Dev

デフォルトのパラメータを使用してスロットでQt5connect()を使用するにはどうすればよいですか?

分類Dev

html5 + webRTCカメラAPIを使用するためにフラッターwebviewのビデオストリーム(NotAllowedError)にアクセスできない問題を修正するにはどうすればよいですか?

分類Dev

Angular 5のマットメニューオーバーレイにクラスを追加するにはどうすればよいですか?

分類Dev

PHPのMIMEタイプの「データの識別に失敗しました0:マジックファイルがロードされていません」エラーを修正するにはどうすればよいですか?

分類Dev

jquery に 4 ~ 5 個のスペースを追加するにはどうすればよいですか?

分類Dev

Spring 5で、フォーム検証エラーメッセージをカスタマイズするにはどうすればよいですか?

分類Dev

C#でintバイトのカラー値(0-255)をfloat / double値(0-1)に変換するにはどうすればよいですか?

分類Dev

コントローラasp.netmvcのhtml5Webフォームからデータを取得するにはどうすればよいですか?

分類Dev

現在の日付で5日を追加し、momentjsで出力をフォーマットするにはどうすればよいですか?

分類Dev

両方のカウンターを0に再起動するボタンを追加するにはどうすればよいですか?

分類Dev

20分から0までのカウンターカウントを表示/表示するにはどうすればよいですか?

分類Dev

netlifyでカスタムドメインのAuth0コールバックを構成するにはどうすればよいですか?

分類Dev

1 3 5 7または9で終わるすべてのクラスをターゲットにするにはどうすればよいですか?

分類Dev

デフォルトのLaravel5認証クラスを拡張して、ユーザーを削除および更新できる管理インターフェースを提供するにはどうすればよいですか?

分類Dev

「ON / OFF」の文字列データを0/1に変更するにはどうすればよいですか?

分類Dev

カードの幅をフラッターで変更するにはどうすればよいですか?

分類Dev

印刷ダイアログ:ページ範囲->ページのデフォルトの「0」を削除するにはどうすればよいですか?

分類Dev

データが空の場合、クエリでカウントを使用して0をカウントするにはどうすればよいですか?

分類Dev

リーフレットマップのリーフレットマーカーペインを削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    フラッター-個々のgoogle_maps_flutter ^ 0.5.21マーカーを削除するにはどうすればよいですか?

  2. 2

    フラッターアプリで5分の止められないタイマーを表示するにはどうすればよいですか?

  3. 3

    Forループを使用して0,0から5,5までの座標を生成するにはどうすればよいですか?

  4. 4

    alpha!= 0のトリップカラープロットからエッジラインを削除するにはどうすればよいですか?

  5. 5

    ViewFlipperのタイマーを0にリセットするにはどうすればよいですか

  6. 6

    GoogleマップのマーカーでclusterMarkを削除するにはどうすればよいですか?

  7. 7

    React.jsでタイマーカウント=== 0のときにボタンを非表示に設定するにはどうすればよいですか?

  8. 8

    plotrixパッケージから放射状円グラフの0を削除するにはどうすればよいですか?

  9. 9

    Jupiterテーマで5列の行を作成するにはどうすればよいですか?

  10. 10

    アラートカラーのブートストラップ4とRubyon Rails5を変更またはカスタマイズするにはどうすればよいですか?

  11. 11

    デフォルトのパラメータを使用してスロットでQt5connect()を使用するにはどうすればよいですか?

  12. 12

    html5 + webRTCカメラAPIを使用するためにフラッターwebviewのビデオストリーム(NotAllowedError)にアクセスできない問題を修正するにはどうすればよいですか?

  13. 13

    Angular 5のマットメニューオーバーレイにクラスを追加するにはどうすればよいですか?

  14. 14

    PHPのMIMEタイプの「データの識別に失敗しました0:マジックファイルがロードされていません」エラーを修正するにはどうすればよいですか?

  15. 15

    jquery に 4 ~ 5 個のスペースを追加するにはどうすればよいですか?

  16. 16

    Spring 5で、フォーム検証エラーメッセージをカスタマイズするにはどうすればよいですか?

  17. 17

    C#でintバイトのカラー値(0-255)をfloat / double値(0-1)に変換するにはどうすればよいですか?

  18. 18

    コントローラasp.netmvcのhtml5Webフォームからデータを取得するにはどうすればよいですか?

  19. 19

    現在の日付で5日を追加し、momentjsで出力をフォーマットするにはどうすればよいですか?

  20. 20

    両方のカウンターを0に再起動するボタンを追加するにはどうすればよいですか?

  21. 21

    20分から0までのカウンターカウントを表示/表示するにはどうすればよいですか?

  22. 22

    netlifyでカスタムドメインのAuth0コールバックを構成するにはどうすればよいですか?

  23. 23

    1 3 5 7または9で終わるすべてのクラスをターゲットにするにはどうすればよいですか?

  24. 24

    デフォルトのLaravel5認証クラスを拡張して、ユーザーを削除および更新できる管理インターフェースを提供するにはどうすればよいですか?

  25. 25

    「ON / OFF」の文字列データを0/1に変更するにはどうすればよいですか?

  26. 26

    カードの幅をフラッターで変更するにはどうすればよいですか?

  27. 27

    印刷ダイアログ:ページ範囲->ページのデフォルトの「0」を削除するにはどうすればよいですか?

  28. 28

    データが空の場合、クエリでカウントを使用して0をカウントするにはどうすればよいですか?

  29. 29

    リーフレットマップのリーフレットマーカーペインを削除するにはどうすればよいですか?

ホットタグ

アーカイブ