【发布时间】:2018-01-16 13:05:24
【问题描述】:
我在将 api(gdelta 项目)中的 geojson 文件加载到代号一时遇到问题。 json 来自此 api 的一个文件,您必须下载该文件,但是我无法在线或自己找到将此文件下载到我的程序中的方法。我已经尝试将其放入存储中,但我似乎无法实际找到放置文件的位置。
【问题讨论】:
标签: codenameone
我在将 api(gdelta 项目)中的 geojson 文件加载到代号一时遇到问题。 json 来自此 api 的一个文件,您必须下载该文件,但是我无法在线或自己找到将此文件下载到我的程序中的方法。我已经尝试将其放入存储中,但我似乎无法实际找到放置文件的位置。
【问题讨论】:
标签: codenameone
您可以将文件下载到存储中并为其指定任何名称,但我猜您实际上要问的是如何连接到 Web 服务并解析生成的 JSON 数据。我没有 geojson 的即时示例,但我有 Google 地理编码网络服务的示例,应该非常接近。作为旁注,这些示例来自我在 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));
}
}
});
}
结果返回到遵循 JSON 数据层次结构的 Map 对象。您可以在代码中放置断点并检查映射值以查看结果。
【讨论】: