You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何通过JSONObject/JSONArray获取Polyline的Points

在Android Studio中解析路线JSON获取Polyline Points的方法

嘿,我来帮你搞定这个问题!你要从包含多个途经点的路线JSON数据里提取Polyline的points字段,其实就是逐层拆解JSON的嵌套结构就行,我给你一步步说明:

第一步:先理清JSON的层级结构

从你提供的示例JSON可以看到,数据的嵌套关系是这样的:
JSONObject → routes(JSONArray) → 单个route(JSONObject) → legs(JSONArray) → 单个leg(JSONObject) → steps(JSONArray) → 单个step(JSONObject) → polyline(JSONObject) → points(String)

第二步:编写解析代码

在Android里,我们可以用原生的JSONObject和JSONArray来完成解析,下面是完整的示例代码:

try {
    // 假设你已经拿到了返回的JSON字符串,存放在responseJson变量里
    JSONObject rootObject = new JSONObject(responseJson);
    
    // 获取routes数组,一般取第一个元素(最优路线)
    JSONArray routesArray = rootObject.getJSONArray("routes");
    if (routesArray.length() > 0) {
        JSONObject routeObject = routesArray.getJSONObject(0);
        
        // 获取legs数组(每个leg是一段起点到途经点/终点的路线)
        JSONArray legsArray = routeObject.getJSONArray("legs");
        for (int i = 0; i < legsArray.length(); i++) {
            JSONObject legObject = legsArray.getJSONObject(i);
            
            // 获取steps数组(每个step是一段具体的行驶步骤)
            JSONArray stepsArray = legObject.getJSONArray("steps");
            for (int j = 0; j < stepsArray.length(); j++) {
                JSONObject stepObject = stepsArray.getJSONObject(j);
                
                // 获取当前step的polyline对象
                JSONObject polylineObject = stepObject.getJSONObject("polyline");
                // 提取points字符串
                String polylinePoints = polylineObject.getString("points");
                
                // 这里你可以把points存起来,或者做后续处理
                Log.d("PolylinePoints", "Step " + j + ": " + polylinePoints);
            }
        }
    }
} catch (JSONException e) {
    e.printStackTrace();
    // 处理解析异常,比如JSON格式错误、字段缺失等情况
}

补充说明

  • 异常处理不能少:解析JSON时一定要捕获JSONException,避免因为接口返回格式变动、字段缺失等情况导致APP崩溃
  • 关于points的解码:你拿到的points是经过编码的压缩字符串,如果需要转换成可用于绘制Polyline的LatLng坐标列表,可以用Google Maps SDK提供的PolyUtil.decode(polylinePoints)方法,直接将编码字符串转为List<LatLng>

内容的提问来源于stack exchange,提问作者Sumit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:23:30