将geojson文件加载到代号之一

时间:2018-01-15 19:06:55

标签: codenameone

我无法将api(gdelta项目)中的geojson文件加载到代号1中。 json来自这个api的文件,你必须下载,但是我无法在网上或我自己找到一种方法将这个文件下载到我的程序中。我已经尝试将它放入存储但我似乎无法在物理上找到放置文件的位置。

1 个答案:

答案 0 :(得分:0)

您可以将文件下载到存储中并为其指定任何名称,但我猜测您实际要问的是如何连接到Web服务并解析生成的JSON数据。我没有为geojson立即提供样本,但我有Googles地理编码网络服务的样本应该非常接近。作为旁注,这些样本来自我在online course中对Uber克隆应用程序所做的工作......

public static void findLocation(String name, SuccessCallback<Coord> location) {
    Rest.get("https://maps.googleapis.com/maps/api/geocode/json").
            queryParam("address", name).
            queryParam("key", Globals.GOOGLE_GEOCODING_KEY).
            getAsJsonMap(callbackMap -> {
                Map data = callbackMap.getResponseData();
                if(data != null) {
                    List results = (List)data.get("results");
                    if(results != null && results.size() > 0) {
                        Map firstResult = (Map)results.get(0);
                        Map geometryMap = (Map)firstResult.get("geometry");
                        Map locationMap = (Map)geometryMap.get("location");
                        double lat = Util.toDoubleValue(locationMap.get("lat"));
                        double lon = Util.toDoubleValue(locationMap.get("lng"));
                        location.onSucess(new Coord(lat, lon));
                    }
                }
            });
}

结果返回到Map对象,该对象遵循JSON数据的层次结构。您可以在代码中放置断点并检查映射值以查看结果。