拆分具有经度和纬度点的字符串

时间:2017-01-20 13:23:32

标签: java android split kml

我有一个kmlLayer,上面有几个placemarker。我想迭代这些位置标记并检索它们的坐标,以便找到从我的位置到这些点的距离,并且只将标记设置在一定距离内可见。 我有以下代码

 for (KmlPlacemark placemark: layer.getPlacemarks()) {
            String s = ("placemarks",placemark.getGeometry()..getGeometryObject().toString());

String s具有以下格式: lat / lng:(55.94569390835889,-3.190410055779333) 我想从中提取两个协调的。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

因此,如果您不想使用正则表达式,请手动完成。首先删除“(”和“)”之前的任何内容

s = s.substring(s.indexOf("(")+1,s.indexOf(")")); //this will get you "55...,-3.19..."

然后将其拆分为“,”。

String[] strngs = s.split(",");
double lat = Double.parseDouble(strings[0]);
double lon = Double.parseDouble(string[1]);

答案 1 :(得分:1)

如果我们可以保证要解析的String总是以规范的方式定义,那么定义为lat + long ALWAYS,那么使用正则表达式将是最简单的方法:

实施例

 String latLong = "lat/lng: (55.94569390835889,-3.190410055779333)";
 Pattern patte = Pattern.compile("-?[0-9]+(?:.[0-9]+)?");
 Matcher matcher = patte.matcher(latLong);
 while (matcher.find()) {
      System.out.println(Double.parseDouble(matcher.group()));
 }