【问题标题】:Parse JSON objects(lat and lng) in GoogleMap as markers将 GoogleMap 中的 JSON 对象(lat 和 lng)解析为标记
【发布时间】:2013-09-14 21:05:28
【问题描述】:

当我在 System.out.println(shop.getShopLat()); 中解析 lat 和 lng 时,效果很好。没有标记的地图工作正常。现在我想使用 shop.getShopLat() 和 shop.getShopLng() 添加几个标记。但是当我尝试实现这个时,得到了红旗:构造函数 LatLng(ArrayList, ArrayList) 是未定义的有人请帮忙解决这个问题?

【问题讨论】:

  • 您显然没有接受两个 ArrayList 参数的构造函数。
  • 为什么我会被否决?我问了一个我不知道的问题,我在 google 上找不到解决方案。
  • 因为错误清楚地说明了问题所在

标签: java android json google-maps gson


【解决方案1】:

请看一下这一行:

for(Shop shop : this.response.shops){
            map.addMarker(new MarkerOptions().position(new LatLng(shop.getShopLat(), shop.getShopLng())).title(shop.getShopAddress()));
            }

在这一行中,您想通过向构造函数添加一个数组而不是一个值来创建一个新的 LatLng() 对象,将此行更改为:

for(Shop shop : this.response.shops){
    //remember to check is shop.getShopLat() is not null etc..
    for(int i = 0; i < shop.getShopLat().size(); i++){
        map.addMarker(new MarkerOptions().position(new LatLng( shop.getShopLat().get(i), shop.getShopLng().get(i) )).title( shop.getShopAddress().get(i) ));
    }
}

【讨论】:

  • 我已经确定了错误的位置并做出了与您的答案类似的更改,但现在我得到了新的红旗:构造函数 LatLng(String, String) 未定义
  • 你需要:Double.parseDouble(shop.getShopLat().get(i));如果是 double 值,如果是 int 则 Integer.parseInteger(....
猜你喜欢
  • 1970-01-01
  • 2019-12-07
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2018-08-14
  • 2020-05-30
  • 1970-01-01
相关资源
最近更新 更多