亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

求圓半徑范圍內(nèi)所有的點(diǎn)

luodongseu / 1136人閱讀

摘要:在做和地圖有關(guān)的項(xiàng)目的時(shí)候,有時(shí)候會(huì)遇到這樣的需求,比如已知圓中心的經(jīng)緯度,手動(dòng)輸入它的半徑得到這個(gè)圓范圍內(nèi)所有的隨機(jī)點(diǎn)。求圓半徑內(nèi)點(diǎn)的代碼主要的業(yè)務(wù)是這句是緯度和米的比例關(guān)系是經(jīng)度和米的比例關(guān)系最后根據(jù)車(chē)牌號(hào)模塊查詢。

在做和地圖有關(guān)的項(xiàng)目的時(shí)候,有時(shí)候會(huì)遇到這樣的需求,比如:
已知圓中心的經(jīng)緯度(lng, lat),手動(dòng)輸入它的半徑radius,得到這個(gè)圓范圍內(nèi)所有的隨機(jī)點(diǎn)。

我用的是百度地圖js-sdk。
理論部分,喜歡看代碼可以直接跳過(guò):

從上圖可以看出,圓1的經(jīng)緯度是(114.132384, 22.539816)用(x1, y1)表示,圓2的經(jīng)緯度是(114.131888, 22.533516)用(x2, y2)表示
我不可能用abs(x1 - x2) + abs(y1 - y2) <= radius這樣的邏輯去判斷圓1是否在以圓2為中心點(diǎn),radius為半徑的圓范圍內(nèi),因?yàn)檫@樣不是兩點(diǎn)之間的最佳路徑。(abs為取絕對(duì)值函數(shù))

我需要用到初中數(shù)學(xué)學(xué)到過(guò)的勾股定理知識(shí),用(abs(x1-x2))^2 + (abs(y1-y2))^2 <= radius^2來(lái)獲得兩點(diǎn)之間最短路徑,也就是把這個(gè)想象成一個(gè)直角三角形,求它的斜邊。

我通過(guò)js將原點(diǎn)的經(jīng)緯度和半徑傳到后臺(tái),后臺(tái)用java,用的是mybatis框架,數(shù)據(jù)庫(kù)用的Oracle。
js和java就是簡(jiǎn)單的數(shù)據(jù)傳輸,可以省略,業(yè)務(wù)邏輯主要在sql部分:

表結(jié)構(gòu):車(chē)牌號(hào),緯度,經(jīng)度,時(shí)間。
先根據(jù)相同車(chē)牌號(hào)用GROUP BY去重,取最大時(shí)間的一條數(shù)據(jù)。

求圓半徑內(nèi)點(diǎn)的sql代碼:

SELECT G1.*
FROM ${tableName} G1, (
    SELECT MIN(UUID) AS UUID, MAX(LOCATIONTIME)
    FROM ${tableName}
    GROUP BY VEHICLENO
) G2
WHERE G1.UUID = G2.UUID
    AND POWER(ABS((G1.LAT / 0.00000899 - #{lat} / 0.00000899)), 2) + POWER(ABS((G1.LON / 0.00001141 - #{lon} / 0.00001141)), 2)  POWER(#{radius}, 2)
    AND VEHICLENO LIKE CONCAT(#{chepaihao}, "%")

主要的業(yè)務(wù)是這句:

POWER(ABS((G1.LAT / 0.00000899 - #{lat} / 0.00000899)), 2) + POWER(ABS((G1.LON / 0.00001141 - #{lon} / 0.00001141)), 2)  POWER(#{radius}, 2)

0.00000899是緯度和米的比例關(guān)系: 1m = 0.00000899°
0.00001141是經(jīng)度和米的比例關(guān)系: 1m = 0.00001141°

最后根據(jù)車(chē)牌號(hào)模塊查詢。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76078.html

相關(guān)文章

  • 求圓半徑范圍內(nèi)所有的點(diǎn)

    摘要:在做和地圖有關(guān)的項(xiàng)目的時(shí)候,有時(shí)候會(huì)遇到這樣的需求,比如已知圓中心的經(jīng)緯度,手動(dòng)輸入它的半徑得到這個(gè)圓范圍內(nèi)所有的隨機(jī)點(diǎn)。求圓半徑內(nèi)點(diǎn)的代碼主要的業(yè)務(wù)是這句是緯度和米的比例關(guān)系是經(jīng)度和米的比例關(guān)系最后根據(jù)車(chē)牌號(hào)模塊查詢。 在做和地圖有關(guān)的項(xiàng)目的時(shí)候,有時(shí)候會(huì)遇到這樣的需求,比如:已知圓中心的經(jīng)緯度(lng, lat),手動(dòng)輸入它的半徑radius,得到這個(gè)圓范圍內(nèi)所有的隨機(jī)點(diǎn)。 我用的...

    chuyao 評(píng)論0 收藏0
  • canvas實(shí)現(xiàn) 漂亮的下雨效果

    摘要:說(shuō)明這篇文章說(shuō)如何用畫(huà)出漂亮的下雨效果,先看看最后實(shí)現(xiàn)的效果吧。 說(shuō)明 這篇文章說(shuō)如何用canvas畫(huà)出漂亮的下雨效果,先看看最后實(shí)現(xiàn)的效果吧。 效果圖showImg(https://segmentfault.com/img/bV8ITm?w=936&h=532); 解釋 看圖來(lái)分析下,我們需要實(shí)現(xiàn)哪些效果。1、雨滴下落效果,移動(dòng)鼠標(biāo)控制下落方向 2、雨滴下落散成小水珠,小水珠的移動(dòng)...

    Jonathan Shieber 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<