当前位置: 首页 > 知识库问答 >
问题:

从国家、州、城市和每个城市纬度/经度的数据库查询中构建JSON

孙自怡
2023-03-14

我有一个表格,上面有国家、州、城市、城市的纬度/经度。我试图构建一个json字符串,如下所示。

{
  "country": "usa",
  "states": [
    {
      "name": "Alabama",
      "state_code": "AL",
      "cities": [
        {
          "name": "Abbeville",
          "latitude": "31.57184000",
          "longitude": "-85.25049000"
        },
        {
          "name": "Adamsville",
          "latitude": "33.60094000",
          "longitude": "-86.95611000"
        }
      ]
    },
    {
      "name": "Alaska",
      "state_code": "AK",
      "cities": [
        {
          "name": "Akutan",
          "latitude": "54.13350000",
          "longitude": "-165.77686000"
        },
        {
          "name": "Aleutians East Borough",
          "latitude": "54.85000000",
          "longitude": "-163.41667000"
        }
      ]
    }
  ]
}

数据库查询结果在一个数组中:JSONData。我有国家的代码。不确定如何添加一个州如果它不存在和一个城市如果它不存在与城市的纬度和经度(我有的部分???)

let jsonData1 = [];
for (let item of jsonData) {
  if(countryExists(jsonData1, item['COUNTRY'])) {
    ??
  }
  else {
    jsonData1.push({ country: item['COUNTRY']});
  }
}


function countryExists (JSON, country) {
  var hasMatch = false;

  for (var index = 0; index < JSON.length; ++index) {
      var item  = JSON[index];
      if(item.country === country) {
        hasMatch = true;
        break;
      }
  }
  return hasMatch;
}

共有1个答案

酆勇
2023-03-14

假设您希望使用您选择的模式,那么在添加一个没有州的国家时,可以将州名的值设置为默认值,例如none,也可以对latitudelongitude设置相同的值。

但是,我建议重新考虑数据的模式。

 类似资料:
  • 我有500000个纬度和经度坐标列表,如下所示: 我希望使用python在一个新列中获得每个坐标的城市、州和国家,如下所示: 有了这么大的数据集,如何在python中实现这一点?我听说过Google的API,Nominatim的API和Geopy包。 如何将所有行运行到此代码中?现在我必须手动输入经纬度到最后一行。 输出给我('Bowdon','North Dakota','USA')。我希望用我

  • 问题内容: 我有一张表,上面有: 城市纬度经度 而且我需要一个sql查询来知道所有城市都距离纽约100英里。 问题答案: 也许这对您有帮助:http : //www.scribd.com/doc/2569355/Geo-Distance-Search-with- MySQL 这是一个不错的介绍。或只是google for ,您会发现一些教程。 如果有可能并且想让它变得更简单,请直接使用支持距离查询

  • 问题内容: 我正在Swift3中开发应用程序,但遇到字母问题,我找不到答案。 我怎么知道基于纬度和经度的城市名称和国家简称? 问题答案: 我建议将Google Maps API 与您的项目集成。如果您这样做,则可以使用Google提供的反向地理编码来完成您的任务。 此外,谷歌还有用于IOS开发的Google Maps SDK ,这也是值得考虑的。 UPD: 您可以在不将地图集成到项目中的情况下做到

  • 请求地址 https://api.es.xiaojukeji.com/river/City/get 返回数据格式 JSON 请求方式 GET 请求参数 参数名称 数据类型 必选 说明 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的access token timestamp string yes 当前时间戳 sign

  • 问题内容: 我有一个php页面,我想从国家,州和城市列表中选择一个位置。该页面包含用于用户注册的其他数据(名称,电子邮件等),因此在选择框刷新时,我不想刷新页面或其他任何内容。当前,每个选择框仅加载国家,州或城市的完整列表。我希望将它们链接起来,所以我没有重复的城市名称(不同州或国家/地区的名称相同)。 位置存储在数据库中,并在加载时传递到页面。然后将它们循环并添加到选择框中: 数据库结构非常简单

  • 问题内容: 有没有一种方法可以使用javascript的google maps API从纬度和经度点获取城市名称? 如果可以,请举个例子吗? 问题答案: 这称为 反向地理编码 Google提供的文件: http://code.google.com/apis/maps/documentation/geocoding/#ReverseGeocoding。 调用Google地理编码网络服务的示例: ht