如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?

Posted

技术标签:

【中文标题】如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?【英文标题】:How to show a polyline on Google map using JSON array of latitude and JSON array of longitude? 【发布时间】:2018-08-18 06:25:09 【问题描述】:

我正在制作一个需要在 Google 地图上显示一条线的应用。折线的坐标位于单独的 JSON 数组中——一个数组代表纬度,一个数组代表经度。我的问题是如何从 JSON url 获取数据并在地图上显示折线? 这是我的 JSON 结构:

“1”:  “id”:”1”,"lat_list":[43.193850940837,43.193553712737,43.193225195784,43.193131333473,43.193146977202],"lng_list":[23.284599781036,23.28423500061,23.28382730484,23.283634185791,23.283518850803]

提前谢谢你!

【问题讨论】:

如果您控制源数据,我建议更好的数据结构会有所帮助 @RamRaider 感谢您的回复!请你能给我一个更好的数据结构的例子吗? 【参考方案1】:

我希望这会有所帮助,您应该注意将 替换为 "。您还可以查看google map polyline and polygon tutorial,了解有关谷歌地图多边形的更多详细信息。

try 
    JSONObject obj = new JSONObject("\"1\":  \"id\":\"1\",\"lat_list\":[43.193850940837,43.193553712737,43.193225195784,43.193131333473,43.193146977202],\"lng_list\":[23.284599781036,23.28423500061,23.28382730484,23.283634185791,23.283518850803]");
    JSONObject obj2 = obj.getJSONObject("1");
    JSONArray lat_list = obj2.getJSONArray("lat_list");
    JSONArray lng_list = obj2.getJSONArray("lng_list");

    PolylineOptions polyLineOptions = new PolylineOptions()
            .clickable(true);
    for (int i = 0; i < lat_list.length() && i < lng_list.length(); i++) 
        double lat = lat_list.getDouble(i);
        double lng = lng_list.getDouble(i);
        polyLineOptions.add(lat, lng);

    
    googleMap.addPolyline(polyLineOptions);


 catch (JSONException e) 
    e.printStackTrace();

【讨论】:

以上是关于如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iOS 中的 JSON 数组中删除空对象?

将json数组导入hive

如何在javascripts中按经纬度距离对数组项进行排序?

如何通过对vue js中的每个搜索结果使用模态在谷歌地图上显示json数据获得的纬度和经度?

在android中使用json数组值的android地图标记

将数组传递回javascript