Một tùy chọn khác là sử dụng các tùy chọn từ chối đơn giản trong ogr2ogr, chắc chắn là một cách tiếp cận tin tặc hơn các cách tiếp cận JEQL, Fiona hoặc GeoScript nhưng hiệu quả không kém. Lưu ý rằng các phép chiếu từ và tới không thực sự cần phải là hình chiếu thực tế của shapefile ban đầu, miễn là điều duy nhất đang thay đổi giữa các phép chiếu được sử dụng trong s_srs và t_srs là hướng đông và hướng sai. Trong ví dụ này tôi chỉ sử dụng Google Mercator. Tôi chắc chắn có một hệ thống tọa độ đơn giản hơn nhiều để sử dụng làm cơ sở, nhưng hệ thống này đã ở ngay trước mặt tôi để sao chép / dán.
ogr2ogr -s_srs EPSG:900913 -t_srs 'PROJCS["Google Mercator",GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137.0,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["semi_minor",6378137.0],PARAMETER["latitude_of_origin",0.0],PARAMETER["central_meridian",0.0],PARAMETER["scale_factor",1.0],PARAMETER["false_easting",1000.0],PARAMETER["false_northing",1000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","900913"]]' -f "ESRI Shapefile" shift.shp original.shp
Hoặc để lưu gõ / dán, hãy lưu các mục sau vào projcs.txt
(giống như trên, nhưng loại bỏ các dấu ngoặc đơn kèm theo):
-s_srs EPSG:900913
-t_srs PROJCS["Google Mercator",GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137.0,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["semi_minor",6378137.0],PARAMETER["latitude_of_origin",0.0],PARAMETER["central_meridian",0.0],PARAMETER["scale_factor",1.0],PARAMETER["false_easting",1000.0],PARAMETER["false_northing",1000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","900913"]]
và sau đó chạy:
ogr2ogr --optfile projcs.txt shifted.shp input.shp