【问题标题】:Finding a large database of locations around the world?寻找世界各地的大型数据库?
【发布时间】:2014-10-24 13:53:02
【问题描述】:

我正在使用 mapbox 为客户端创建一个示例应用程序,我需要以 lt lng 格式跨越整个世界的巨大位置数据集。

例如

var addressPoints = [
[-37.8210922667, 175.2209316333, "2"],
[-37.8210819833, 175.2213903167, "3"],
[-37.8210881833, 175.2215004833, "3A"],
];

我在想一份世界各地的酒店清单之类的?或者是一种在 Javascript 中动态创建位置且最终不会出现在海中的极其巧妙的方法?

任何帮助将不胜感激!

谢谢。

【问题讨论】:

    标签: map location location-services


    【解决方案1】:

    这是一个有趣的问题 - 我不知道有一个庞大的数据集,但我对生成数据集的一些想法是:

    Strava API

    如果您有免费的 API 密钥,则可以查询 Strava 的路段终点并为其指定 lat/lng 边界,因此您将在这些范围内获得起点和终点(但仅限于 10 个结果,因此您必须循环以获取足够的数据并可能超出您的 API 调用限制,但是如果您只是创建一次它可能不会那么糟糕)。您也可以从特定的自行车骑行/跑步中获得很多积分,但它们会非常接近,我认为您不希望这样做。

    http://strava.github.io/api/v3/segments/#explore 例如

    节流

    默认速率限制允许每 15 分钟 600 个请求,最多 每天最多 30,000 个请求。

    API 调用

    curl -G https://www.strava.com/api/v3/segments/explore \
        -H "Authorization: Bearer YOUR_TOKEN" \
        -d bounds=37.821362,-122.505373,37.842038,-122.465977 \
    

    回应

    {
      "segments": [
        {
          "id": 229781,
          "name": "Hawk Hill",
          "climb_category": 1,
          "climb_category_desc": "4",
          "avg_grade": 5.7,
          "start_latlng": [
            37.8331119,
            -122.4834356
          ],
          "end_latlng": [
            37.8280722,
            -122.4981393
          ],
          "elev_difference": 152.8,
          "distance": 2684.8,
          "points": "}g|eFnm@n@Op@VJr@"
        },
        {
          "id": 632535,
          "name": "Hawk Hill Upper Conzelman to Summit",
          "climb_category": 0,
          "climb_category_desc": "NC",
          "avg_grade": 8.10913,
          "start_latlng": [
            37.8334451,
            -122.4941994
          ],
          "end_latlng": [
            37.8281297,
            -122.4980005
          ],
          "elev_difference": 67.29200000000003,
          "distance": 829.834,
          "points": "_j|eFvc@p@SbAu@h@Qn@?RTDH"
        }
      ]
    }
    

    谷歌地理编码 API

    此 API 将接受地址并为您提供 lat/lng(以及更多),但会受到限制。您只需要一个很容易获得的地址列表。

    APIhttps://developers.google.com/maps/documentation/geocoding/

    节流

    免费 API 的用户:每 24 小时有 2,500 个请求。 5 个请求 每秒。

    API 调用

    https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA
    

    回应

    {
       "results" : [
          {
             "address_components" : [
                {
                   "long_name" : "1600",
                   "short_name" : "1600",
                   "types" : [ "street_number" ]
                },
                {
                   "long_name" : "Amphitheatre Pkwy",
                   "short_name" : "Amphitheatre Pkwy",
                   "types" : [ "route" ]
                },
                {
                   "long_name" : "Mountain View",
                   "short_name" : "Mountain View",
                   "types" : [ "locality", "political" ]
                },
                {
                   "long_name" : "Santa Clara",
                   "short_name" : "Santa Clara",
                   "types" : [ "administrative_area_level_2", "political" ]
                },
                {
                   "long_name" : "California",
                   "short_name" : "CA",
                   "types" : [ "administrative_area_level_1", "political" ]
                },
                {
                   "long_name" : "United States",
                   "short_name" : "US",
                   "types" : [ "country", "political" ]
                },
                {
                   "long_name" : "94043",
                   "short_name" : "94043",
                   "types" : [ "postal_code" ]
                }
             ],
             "formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
             "geometry" : {
                "location" : {
                   "lat" : 37.42291810,
                   "lng" : -122.08542120
                },
                "location_type" : "ROOFTOP",
                "viewport" : {
                   "northeast" : {
                      "lat" : 37.42426708029149,
                      "lng" : -122.0840722197085
                   },
                   "southwest" : {
                      "lat" : 37.42156911970850,
                      "lng" : -122.0867701802915
                   }
                }
             },
             "types" : [ "street_address" ]
          }
       ],
       "status" : "OK"
    }
    

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2013-09-04
      • 2019-07-10
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多