如何从表中获取坐标

问题描述 投票:0回答:1

我需要从locations表中取坐标,并用我的数据53.4015174, 44.967495替换它们

SELECT P.* 
    FROM PRODUCTS AS P
        LEFT JOIN MERCHANTS AS M ON (M.MERCHANT_ID = P.STORE_ID)
        LEFT JOIN CATEGORIES AS C ON (C.CATEGORIES_NAME = P.CATEGORIES)
        LEFT JOIN LOCATIONS AS LO ON (LO.LOCATION_ID = 20)
            WHERE P.CATEGORIES ILIKE ANY(ARRAY['Cameras']) AND
                ST_DWithin(M.LOCATION::geography, ST_GeogFromText('POINT(53.4015174 44.967495)'), LO.RADIUS, false)
                GROUP BY P.PRODUCT_ID, M.MERCHANT_ID
sql postgresql postgis
1个回答
1
投票

Firtly SRID设置此查询4326使用它;

SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);

SELECT P.* 
    FROM PRODUCTS AS P
        LEFT JOIN MERCHANTS AS M ON (M.MERCHANT_ID = P.STORE_ID)
        LEFT JOIN CATEGORIES AS C ON (C.CATEGORIES_NAME = P.CATEGORIES)
        LEFT JOIN LOCATIONS AS LO ON (LO.LOCATION_ID = 20)
            WHERE P.CATEGORIES ILIKE ANY(ARRAY['Cameras']) AND
                ST_DWithin(M.LOCATION::geography, ST_AsText(ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326))
                GROUP BY P.PRODUCT_ID, M.MERCHANT_ID
© www.soinside.com 2019 - 2024. All rights reserved.