在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 【前端-自如/鏈家/安居客-地圖找房】地圖api如何獲取瀏覽器視野范圍內(nèi)的經(jīng)緯度

【前端-自如/鏈家/安居客-地圖找房】地圖api如何獲取瀏覽器視野范圍內(nèi)的經(jīng)緯度區(qū)間?

高德地圖或者百度地圖,有api能獲取瀏覽器視野范圍內(nèi)的經(jīng)緯度區(qū)間?

我看到鏈家、安居客和自如等網(wǎng)站的地圖找房功能,請(qǐng)求數(shù)據(jù)時(shí)會(huì)有min_lng,max_lng,min_lat,max_lat等經(jīng)緯度區(qū)間數(shù)據(jù)。

他們后端搜索房源時(shí),應(yīng)該是用這個(gè)經(jīng)緯度區(qū)間來(lái)匹配房源數(shù)據(jù),進(jìn)行返回。

我網(wǎng)上搜索過(guò)地圖api,可是沒(méi)發(fā)現(xiàn)有獲取經(jīng)緯度范圍的api。

我想知道他們是怎么獲取的呢?懇請(qǐng)大神支援呀~

回答
編輯回答
紓惘

他們應(yīng)該不是像你說(shuō)的那樣獲取的。地圖有中心點(diǎn),一般都是根據(jù)中心點(diǎn)計(jì)算附近的數(shù)據(jù),而計(jì)算多點(diǎn)是否在某區(qū)域內(nèi)明顯不是最優(yōu)算法,很耗資源的。

2018年6月22日 19:39
編輯回答
懷中人
在群里請(qǐng)教了大能,解決啦~用map.getBounds()即可!下面是代碼~
    const map = new AMap.Map('mapContainer', {
        resizeEnable: true,
        center: [init_longitude, init_latitude],
        zoom: 10
    });
    /* 大家console下面的getBounds,會(huì)有驚喜~
    ** 我這里是用的高德,百度也有g(shù)etBounds!
    ** */
    console.log(map.getBounds(), '=====')
    
    /* 敲一下下面的代碼就明白了~
    ** 點(diǎn)標(biāo)記:中心點(diǎn)-天安門 */
    const marker = new AMap.Marker({
        position: ['116.397428','39.90923'],
        title: '中心點(diǎn)-天安門',
        animation: 'AMAP_ANIMATION_DROP'
        });
    marker.setMap(map);
    const bounds = map.getBounds()
    /* 點(diǎn)標(biāo)記:瀏覽器的東北角 */
    const marker2 = new AMap.Marker({
        position: [bounds.northeast.N,bounds.northeast.Q],
        title: '瀏覽器的東北角',
        animation: 'AMAP_ANIMATION_BOUNCE'
    });
    /* 點(diǎn)標(biāo)記:瀏覽器的西南角 */
    marker2.setMap(map);
    const marker3 = new AMap.Marker({
        position: [bounds.southwest.N,bounds.southwest.Q],
        title: '瀏覽器的西南角',
        animation: 'AMAP_ANIMATION_BOUNCE'
    });
    marker3.setMap(map);
2017年12月25日 18:33