【问题标题】:Reverse Geocoding in MapBox api not workingMapBox api中的反向地理编码不起作用
【发布时间】:2020-06-22 19:56:53
【问题描述】:

完美的正向地理编码,现在我想使用反向地理编码并不断收到 422 的 Http 状态错误。反向地理编码在 Mapbox 操场上也不起作用。对此有何建议或理由?

这是我的 http 请求:

https://api.mapbox.com/geocoding/v5/mapbox.places/32.70972385426521,-117.15991102159023.json?types=place&access_token=[MAPBOX TOKEN HERE]

【问题讨论】:

    标签: flutter mapbox reverse-geocoding mapbox-gl


    【解决方案1】:

    你把 lat lng 颠倒了。

    执行此请求:

    curl --location --request GET \
    'https://api.mapbox.com/geocoding/v5/mapbox.places/-117.15991102159023,32.70972385426521.json?types=place&access_token=TOKEN'
    

    导致此响应:

    {
        "type": "FeatureCollection",
        "query": [
            -117.15991102159023,
            32.70972385426521
        ],
        "features": [
            {
                "id": "place.11741308809618150",
                "type": "Feature",
                "place_type": [
                    "place"
                ],
                "relevance": 1,
                "properties": {
                    "wikidata": "Q16552"
                },
                "text": "San Diego",
                "place_name": "San Diego, California, United States",
                "bbox": [
                    -117.266223298428,
                    32.534171982,
                    -116.853118984,
                    33.0722089336828
                ],
                "center": [
                    -117.1628,
                    32.7174
                ],
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        -117.1628,
                        32.7174
                    ]
                },
                "context": [
                    {
                        "id": "region.9697035897738010",
                        "short_code": "US-CA",
                        "wikidata": "Q99",
                        "text": "California"
                    },
                    {
                        "id": "country.19352517729256050",
                        "short_code": "us",
                        "wikidata": "Q30",
                        "text": "United States"
                    }
                ]
            }
        ],
        "attribution": "NOTICE: © 2020 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."
    }
    

    【讨论】:

    • 谢谢。几乎在您发布的同时想通了。感谢您的正确回答。我给了它一个大拇指:)
    【解决方案2】:

    Http 422 错误是一个不可处理的实体,这意味着您有良好格式的请求,但在语义上它无法处理 - 可能与使用的数据有关

    422 description:

    修复 422 Unprocessable Entity 错误并不是那么简单。这 对于每种情况,解决路径可能会有很大不同。然而,作为 上面描述的 RFC 定义的 422 状态,错误 当您的数据不正确时发生;或者因为没有更好的条件, 不合逻辑。

    尝试查看您的数据以验证您是否有 在您的请求中错误地定义了特定的数据。

    Reference docs

    422 (Unprocessable Entity) 状态码表示服务器 理解请求实体的内容类型(因此 415(不支持的媒体类型)状态码不合适),并且 请求实体的语法是正确的(因此是 400 (Bad Request) 状态码不合适)但无法处理包含的 说明。

    您确定输入的数据正确吗?

    ...32.70972385426521,-117.15991102159023.json?

    【讨论】:

      【解决方案3】:

      找到了答案。反向编码格式先取经度,再取纬度。简单的修复,但不是纬度/经度格式的常见结构。现在我在 http 请求中交换了它们,如下所示:

      https://api.mapbox.com/geocoding/v5/mapbox.places/-117.15991102159023,32.70972385426521.json?types=place&access_token=[MAPBOX这里的令牌]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多