将HTTP响应中的元素转换为地图标记

时间:2016-12-18 18:58:11

标签: java android

我有这个链接:

http://travelplanner.mobiliteit.lu/hafas/query.exe/dot?performLocating=2&tpl=stop2csv&stationProxy=yes &look_maxdist=150&look_x=6112550&look_y=49610700 

并且呼叫的响应是:

id=A=1@O=Belair, Sacré-Coeur@X=6,113204@Y=49,610279@U=82@L=200403005@B=1@p=1459856195;

我希望从此响应中获取X和Y并将它们放入地图上的标记中。我写的代码永远无法运作。

如何获得响应才能再次使用?

1 个答案:

答案 0 :(得分:1)

由于您没有向我们提供您的代码,我只能盲目回答您的问题。

获取X和Y就像编写适当的正则表达式一样简单。下一步和最后一步是将标记添加到地图中。

Pattern pattern = Pattern.compile("X=(?<x>.+?)@Y=(?<y>.+?)@");
Matcher matcher = pattern.matcher("id=A=1@O=Belair, Sacré-Coeur@X=6,113204@Y=49,610279@U=82@L=200403005@B=1@p=1459856195;");

if (matcher.find()) {
    double x = Double.parseDouble(matcher.group("x").replace(",", "."));
    double y = Double.parseDouble(matcher.group("y").replace(",", "."));

    map.addMarker(new MarkerOptions()
        .position(new LatLng(x, y))
        .title("New Marker"));
}

当然不要硬编码字符串以匹配,它仅用于示例,您应该从HTTP响应中获取它。