目录

逆地理编码

获取经纬度对应的地点,最多返回11条记录。

实现步骤

  1. 通过HWMapJsSDK初始化HWSiteService对象。
  2. 构建请求体request对象,其中location是必选参数,其余可选,politicalView参数已废弃:

    • location:经纬度。
    • language:搜索结果的语种。如果不指定语种,使用地点的当地语言。语种取值请参见支持的语言列表。
    • politicalView:政治观点参数,采用ISO 3166-1 alpha-2规范的2位国家码,该参数已废弃。
    • returnPoi:是否返回POI的地点名称,默认是true。

  3. 通过第1步创建的HWSiteService对象调用reverseGeocode接口,传入第2步创建的request对象。
  4. 获取搜索结果。通过第3步reverseGeocode接口的回调函数返回搜索结果result和搜索状态status。status请参见错误码,result包含以下对象:

    sites:最多返回11条搜索结果Site[],Site描述请参见参数说明。注意Site对象不返回POI信息。

示例代码

<body>
    <div id="map"></div>
    <script>
        var markers = [];
        var map;
        var mapOptions = {};
        function initMap() {
            mapOptions.center = {lat: 48.856613, lng: 2.352222};
            mapOptions.zoom = 8;
            map = new HWMapJsSDK.HWMap(document.getElementById('map'), mapOptions);
            var siteService
            // 初始化HWSiteService对象
            siteService = new HWMapJsSDK.HWSiteService();
            // 初始化请求参数对象
            var request = {
                location: {
                    lat: 18.0527,
                    lng: 77.2155
                }
            };
            // 调用逆地理编码接口,result为返回结果,status为返回状态
            siteService.reverseGeocode(request, function (result, status) {
                if (status == '0') {
                     const res = result && result.sites && result.sites[0].location
                    if (res) {
                        // 添加标记
                        var marker = new HWMapJsSDK.HWMarker({
                            map: map,
                            position: {lat: res.lat, lng: res.lng},
                            label: result.sites[0].name
                        });
                        markers.push(marker);
                        // 设置地图中心位置
                        map.setCenter({lat: res.lat, lng: res.lng})
                    }
                }
            });
        }
    </script>
</body>