在MySQL中查找加权地理中点

时间:2012-12-30 03:32:50

标签: mysql latitude-longitude

我正在尝试找到一大组坐标的地理中心点,按家庭要价加权。

找到地理中心点的简单,非加权方式正在运作:

SELECT
    avg(LMD_MP_Latitude) as AVG_LAT,  
    avg(LMD_MP_Longitude) as AVG_LON

FROM  `great_users`.`usage`

请注意,所有结果都在25英里之内,因此spherical issues are minimal

以上查询有效,我得到一个坐标,它是所有属性的中心。

现在,我想按L_AskingPrice对结果进行加权。更昂贵的行将具有更多的“重力”,并且应该将中心点移向更昂贵的社区。

然而,以下查询将中心点移动到几米之外,如果行数超过4,000且输入相当不同,则感觉不对。

SELECT 
    SUM(LMD_MP_Latitude * L_AskingPrice) / SUM(L_AskingPrice) AS Avg_Lat, 

    SUM(LMD_MP_Longitude * L_AskingPrice) / SUM(L_AskingPrice) AS Avg_Lon

    FROM `great_users`.`usage` 

我想知道是否以某种方式加权(整数范围从50,000到4,000,000)压倒了34.X和-82.X的GPS坐标

我尝试将L_AskingPrice除以100k到7B的值,但它似乎没有移动针。但是,尽管我付出了最大的努力,但我可能已经将操作顺序搞砸了。

样本表:

LMD_MP_Latitude | LMD_MP_Longitude | L_AskingPrice

34.83701 | -82.432411 | 175000

0 个答案:

没有答案