geoc_wgs84togcj02_numeric.sql 627 B

12345678910111213141516171819202122232425
  1. CREATE OR REPLACE FUNCTION "public"."geoc_wgs84togcj02"("coord" _numeric)
  2. RETURNS "pg_catalog"."_numeric" AS $BODY$
  3. DECLARE
  4. ret numeric[];
  5. dLon numeric;
  6. dlat numeric;
  7. lon numeric;
  8. lat numeric;
  9. d jsonb;
  10. -- coord ARRAY;
  11. BEGIN
  12. lon := coord[1];
  13. lat := coord[2];
  14. if (geoc_is_in_china_bbox(lon, lat) = false) then
  15. return coord;
  16. end if;
  17. d := geoc_delta(lon, lat);
  18. dlon := d->0;
  19. dlat := d->1;
  20. ret := ARRAY[lon + dlon , lat + dlat];
  21. return ret;
  22. END;
  23. $BODY$
  24. LANGUAGE plpgsql VOLATILE
  25. COST 100