草庐IT

google-maps - 迭代标记 Google Flutter map

coder 2023-05-09 原文

我正在尝试在新的 google flutter map 中迭代标记.

我使用 Web 服务检索坐标数组,然后迭代元素并获取具有纬度和经度的索引。

for (int i = 0; i < list.length; i++) {
 mapController.addMarker(MarkerOptions(position:  list[0].values.elementAt(i)))));
}

还有 map 选项。

GoogleMapController mapController;

GoogleMap(
     onMapCreated: (GoogleMapController mapController) {
          mapController = mapController;         
     },
     options: GoogleMapOptions(
          mapType: MapType.satellite,
          myLocationEnabled :true,
          cameraPosition: CameraPosition(
          target: LatLng(40.347022, -3.750381), zoom: 5.0),
    ),
),

我认为 mapController 应该采用我放在 for 循环中的坐标,但它不起作用。控制台返回

The method 'addMarker' was called on null.

所以问题是,如何使用谷歌 flutter map 包动态添加多个标记?

我也试过这个简单的代码并且工作正常,所以添加标记时出现错误。

  GoogleMapController mapController;

    GoogleMap(
                  onMapCreated: (GoogleMapController mapController) {
                    mapController = mapController;
                    mapController.addMarker(MarkerOptions(
                      position:LatLng(40.347022, -3.750381),          
                      infoWindowText: InfoWindowText("Title", "Content"),
                      //icon:
                    ));
                     mapController.addMarker(MarkerOptions(
                      position:LatLng(43.321871, -3.006887),          
                      infoWindowText: InfoWindowText("Title", "Content"),
                      //icon:
                    ));

                  },
                  options: GoogleMapOptions(
                    mapType: MapType.satellite,
                    myLocationEnabled :true,
                    cameraPosition: CameraPosition(
                        target: LatLng(40.347022, -3.750381), zoom: 5.0),
                  ),
                ),

更新 2

我找到了这个示例代码。这正是我想要的,但我不能重复此代码,返回此错误

https://github.com/gerryhigh/Flutter-Google-Maps-Demo/blob/master/lib/venues.dart

NoSuchMethodError: The getter 'className' was called on null.

最佳答案

我在主构建函数中调用了一个谷歌地图的实例。像这样:

return GoogleMap(
  onMapCreated: _onMapCreated,
  options: GoogleMapOptions(
    cameraPosition: CameraPosition(
      target: _center1,
      zoom: 11.0,
    ),
  ),
);

“_onMapCreated”函数内部是迭代器:

widget.model.allItems.forEach((item) {
  //print("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
  print(item.lat);

  var newItem = LatLng(double.parse(item.lat), double.parse(item.lon));
  mapController.addMarker(
    MarkerOptions(
      icon: BitmapDescriptor.fromAsset(assetName),
      position: newItem,
    ),
  );
});

这对我有用。

关于google-maps - 迭代标记 Google Flutter map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54074376/

有关google-maps - 迭代标记 Google Flutter map的更多相关文章

  1. ruby - 为什么 Ruby 的 each 迭代器先执行? - 2

    我在用Ruby执行简单任务时遇到了一件奇怪的事情。我只想用每个方法迭代字母表,但迭代在执行中先进行:alfawit=("a".."z")puts"That'sanalphabet:\n\n#{alfawit.each{|litera|putslitera}}"这段代码的结果是:(缩写)abc⋮xyzThat'sanalphabet:a..z知道为什么它会这样工作或者我做错了什么吗?提前致谢。 最佳答案 因为您的each调用被插入到在固定字符串之前执行的字符串文字中。此外,each返回一个Enumerable,实际上您甚至打印它。试试

  2. ruby - 在 ruby​​ 中使用 .try 函数和 .map 函数 - 2

    我需要从json记录中获取一些值并像下面这样提取curr_json_doc['title']['genre'].map{|s|s['name']}.join(',')但对于某些记录,curr_json_doc['title']['genre']可以为空。所以我想对map和join()使用try函数。我试过如下curr_json_doc['title']['genre'].try(:map,{|s|s['name']}).try(:join,(','))但是没用。 最佳答案 你没有正确传递block。block被传递给参数括号外的方法

  3. ruby-on-rails - 使用 gmaps4rails 动态加载谷歌地图标记 - 2

    如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail

  4. ruby - Google-api-ruby-client 翻译 API 示例 - 2

    很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

  5. ruby - 迭代在 Ruby 中是如何工作的? - 2

    我最近开始编写Ruby代码,但我对block参数有误解。以下面的代码为例:h={#Ahashthatmapsnumbernamestodigits:one=>1,#The"arrows"showmappings:key=>value:two=>2#ThecolonsindicateSymbolliterals}h[:one]#=>1.Accessavaluebykeyh[:three]=3#Addanewkey/valuepairtothehashh.eachdo|key,value|#Iteratethroughthekey/valuepairsprint"#{value}:#{ke

  6. ruby - 不能将 `each` 的所有或大多数情况替换为 `map` 吗? - 2

    Enumerable#each和Enumerable#map的区别在于返回的是接收者还是映射后的结果。回到接收者是微不足道的,你通常不需要在each之后继续一个方法链,比如each{...}.another_method(我可能没见过这样的案例。即使你想回到接收者那里,你也可以通过tap来实现)。所以我认为所有或者大部分使用Enumerable#each的情况都可以用Enumerable#map代替。我错了吗?如果我是对的,each的目的是什么?map是否比each慢?编辑:我知道当您对返回值不感兴趣时​​使用each是一种常见的做法。我对这种做法是否存在不感兴趣,但感兴趣的是,除了从

  7. ruby-on-rails - 将 Ruby 代码和文字标记与 Haml 混合 - 2

    如何用HAML编写这个ERB:#OR我可以:=some_ruby_code+":"#and=some_ruby_code%br但我不想在这里连接,我想将它写成内联:(=some_ruby_code):#and(=some_ruby_code)%br 最佳答案 =some_ruby_code+":"-#and=some_ruby_code+""编辑1:我不确定您在寻找什么。你想要其中之一吗?==#{some_ruby_code}:-#and==#{some_ruby_code}或==#{some_ruby_code}:-#and=so

  8. ruby - 从特定索引开始迭代数组 - 2

    我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/

  9. ruby - `map` 比 `each` 快吗? - 2

    map遍历数组是否比each更快?两者有速度差异吗?mapresult=arr.map{|a|a+2}每个result=[]arr.eachdo|a|result.push(a+2)end 最佳答案 我认为是的。我试过这个测试require"benchmark"n=10000arr=Array.new(10000,1)Benchmark.bmdo|x|#Mapx.reportdon.timesdoresult=arr.map{|a|a+2}endend#Eachx.reportdon.timesdoresult=[]arr.each

  10. ruby - 如何从 URL 中删除 Google 跟踪参数 (UTM)? - 2

    我有一堆要清理的URL。它们都包含UTM参数,在这种情况下不是必需的,或者是有害的。示例:http://houseofbuttons.tumblr.com/post/22326009438?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+HouseOfButtons+%28House+of+Buttons%29所有可能的参数都以utm_开头。如何使用ruby​​脚本/结构轻松删除它们而不破坏其他潜在的“好”URL参数? 最佳答案 您可以将正则表达式应用于url以清

随机推荐