【问题标题】:Splitting a String which has longitude and latitude points拆分具有经度和纬度点的字符串
【发布时间】:2017-01-20 13:23:31
【问题描述】:

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

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

String s 的格式如下: 纬度/经度:(55.94569390835889,-3.190410055779333) 我想从中提取两个协调的。我该怎么做?

【问题讨论】:

    标签: java android split kml


    【解决方案1】:

    如果我们可以保证要解析的字符串始终以规范的方式定义,即定义为 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()));
     }
    

    【讨论】:

      【解决方案2】:

      所以,如果您不想使用 Regex,请手动操作。首先删除“(”之前和“)”之后的所有内容

      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]);
      

      【讨论】:

        猜你喜欢
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 2021-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多