如何从字符串值中获取纬度?

Posted

技术标签:

【中文标题】如何从字符串值中获取纬度?【英文标题】:How to get Latitude from string value? 【发布时间】:2018-12-30 16:38:53 【问题描述】:

位置值是从我们的服务器获取的,现在我以字符串格式定义新位置,之后我想获取经度和纬度,但它是 0.0。 代码是这样的。

String location = "lat\/lng: (28.6988812,77.1153696)";
Location loc = new Location(location);
double lat = loc.getLatitude();
double longitude = loc.getLongitude();

【问题讨论】:

看看this 【参考方案1】:

根据 android 文档,您需要在构造函数中传递位置提供程序。 参考https://developer.android.com/reference/android/location/Location.html#Location(java.lang.String)

您需要解析从服务器获取的字符串 ("lat/lng: (28.6988812,77.1153696)"),提取纬度和经度,然后使用 setLatitude() 和 setLongitude() 将这些值传递给您的位置对象功能。

【讨论】:

【参考方案2】:

您可以使用正则表达式从您从服务器获得的位置字符串中提取纬度和经度。像这样:

Double latitude = 0., longitude = 0.;

    //your location
    String location = "lat/long: (28.6988812,77.1153696)";
    //pattern
    Pattern pattern = Pattern.compile("lat/long: \\(([0-9.]+),([0-9.]+)\\)$");
    Matcher matcher = pattern.matcher(location);
    if (matcher.matches()) 
        latitude = Double.valueOf(matcher.group(1));
        longitude = Double.valueOf(matcher.group(2));
    

如果你需要一个 Location 对象:

Location targetLocation = new Location("");//provider name is unnecessary
targetLocation.setLatitude(latitude);//your coords of course
targetLocation.setLongitude(longitude);

感谢answer

【讨论】:

以上是关于如何从字符串值中获取纬度?的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含字符串的href值中获取li

如何从Java中的字符串值中获取枚举值

如何从纬度和经度值中找到一个地方的名称

给定一个数组数组,如何从每个值中去掉子字符串“GB”?

从Hashmap的所有值中获取所有嵌套项

从字符串值中删除引号和转义引号 [重复]