【前端-自如/链家/安居客-地图找房】地图api如何获取浏览器视野范围内的经纬度区间?

高德地图或者百度地图,有api能获取浏览器视野范围内的经纬度区间?

我看到链家、安居客和自如等网站的地图找房功能,请求数据时会有min_lng,max_lng,min_lat,max_lat等经纬度区间数据。

他们后端搜索房源时,应该是用这个经纬度区间来匹配房源数据,进行返回。

我网上搜索过地图api,可是没发现有获取经纬度范围的api。

我想知道他们是怎么获取的呢?恳请大神支援呀~

阅读 4.6k
2 个回答
在群里请教了大能,解决啦~用map.getBounds()即可!下面是代码~
    const map = new AMap.Map('mapContainer', {
        resizeEnable: true,
        center: [init_longitude, init_latitude],
        zoom: 10
    });
    /* 大家console下面的getBounds,会有惊喜~
    ** 我这里是用的高德,百度也有getBounds!
    ** */
    console.log(map.getBounds(), '=====')
    
    /* 敲一下下面的代码就明白了~
    ** 点标记:中心点-天安门 */
    const marker = new AMap.Marker({
        position: ['116.397428','39.90923'],
        title: '中心点-天安门',
        animation: 'AMAP_ANIMATION_DROP'
        });
    marker.setMap(map);
    const bounds = map.getBounds()
    /* 点标记:浏览器的东北角 */
    const marker2 = new AMap.Marker({
        position: [bounds.northeast.N,bounds.northeast.Q],
        title: '浏览器的东北角',
        animation: 'AMAP_ANIMATION_BOUNCE'
    });
    /* 点标记:浏览器的西南角 */
    marker2.setMap(map);
    const marker3 = new AMap.Marker({
        position: [bounds.southwest.N,bounds.southwest.Q],
        title: '浏览器的西南角',
        animation: 'AMAP_ANIMATION_BOUNCE'
    });
    marker3.setMap(map);

他们应该不是像你说的那样获取的。地图有中心点,一般都是根据中心点计算附近的数据,而计算多点是否在某区域内明显不是最优算法,很耗资源的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题