1

我有下面的字符串,我从 hashmap 得到,但我怎样才能从下面得到 lat 和 lng:

[lat/lng: (70.0187, -141.0205), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163), lat/lng: (70.4515,-144.8163)]  

整个代码和流程到我是如何到达这里的:

LatLng allLatLng= new LatLng((lat1),(long1));
all.add(allLatLng);

 map.put("latlng" , all.toString());

第二个树状图:

Collections.sort(list, new Comparator<Map<String, String>>() {

        @Override
        public int compare(Map<String, String> o1, Map<String, String> o2) {
            String value1 =  o1.get("amount");
            String value2 =  o2.get("amount");
            return Integer.parseInt(value1)-Integer.parseInt(value2);
        }
    });

    for (Map<String, String> map1 : list) {
        String id = map1.get("id");
        String amount = map1.get("amount");
        System.out.println("amount= "+amount + " , " +"id = "+id);
  String idlatlng = map1.get("latlng");
        }

在上面的代码中,我得到了 latlng 的值。

String idlatlng = map1.get("latlng");
4

3 回答 3

1

您正在将所有 lat lang 值添加到一个键中,您可能想要更改将值添加到 hashmap 的方式..

我只是举一个简单的例子

 LatLng LatLng1= new LatLng((lat1),(long1));
 l1.add(LatLng2);

 map.put("latlng1" , l1.toString());

 LatLng LatLng2= new LatLng((lat2),(long2));
 l2.add(LatLng2);

 map.put("latlng2" , l2.toString());
 // then map.get("latlang1") will give you  lat/lng: (70.0187, -141.0205) 
 String result = map.get("latlang1")//so result will have lat/lng: (70.0187, -141.0205)
 String latlang[]=result.split(":");//will split by the :
 //so latlang[1] will be (70.0187, -141.0205)
 latlang[1].replaceAll("(", "");
 latlang[1].replaceAll("", ")");
 //above lines remove brackets
 //finally split again by "," to get you lat and long
于 2013-10-09T19:53:55.743 回答
1

您可以使用:

Map<String, Object> map = new HashMap<String, Object>();
map.put("latlng" , all);

接着:

Collections.sort(list, new Comparator<Map<String, Object>>() {

    @Override
    public int compare(Map<String, Object> o1, Map<String, Object> o2) {
        String value1 = (String) o1.get("amount");
        String value2 = (String) o2.get("amount");
        return Integer.parseInt(value1)-Integer.parseInt(value2);
    }
});

for (Map<String, Object> map1 : list) {
    String id = (String) map1.get("id");
    String amount = (String) map1.get("amount");
    System.out.println("amount= "+amount + " , " +"id = "+id);
    List<LatLng> idlatlng = (List<LatLng>) map1.get("latlng");
}
于 2013-10-09T19:56:53.027 回答
0

现在,您在地图中放置了两个字符串。您需要做的是将 LatLng 放入地图中,如下所示:

Map<String, LatLng>;

然后从 LatLng 类中获取纬度和经度的值。

于 2013-10-09T19:55:54.130 回答