我有一个kmlLayer,上面有几个placemarker。我想迭代这些位置标记并检索它们的坐标,以便找到从我的位置到这些点的距离,并且只将标记设置在一定距离内可见。 我有以下代码
for (KmlPlacemark placemark: layer.getPlacemarks()) {
String s = ("placemarks",placemark.getGeometry()..getGeometryObject().toString());
String s具有以下格式: lat / lng:(55.94569390835889,-3.190410055779333) 我想从中提取两个协调的。我怎么能这样做?
答案 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()));
}