我正在开发一个可以加载.shp文件的Web应用程序。我们的想法是识别此文件,然后在Google地图中显示每个多边形。我可以在php中读取形状文件。问题是我不知道如何将.shp中使用的坐标系转换为识别Google Maps进行地图操作的坐标系。这些是.shp文件的一些坐标和该文件中使用的坐标系:
坐标系(.prj文件):
LOCAL_CS["CH1903+ / LV95",UNIT["metre",1,AUTHORITY["EPSG","9001"]]]
解释.shp记录:
Record number: 1
Array
(
[bounding_box] => Array
(
[xmin] => 2645165.87317
[xmax] => 2645166.87317
[ymin] => 1132483.62903
[ymax] => 1132484.62903
)
[numparts] => 1
[parts] => Array
(
[0] => Array
(
[numrings] => 1
[rings] => Array
(
[0] => Array
(
[numpoints] => 5
[points] => Array
(
[0] => Array
(
[x] => 2645165.87317
[y] => 1132484.62903
)
[1] => Array
(
[x] => 2645166.87317
[y] => 1132484.62903
)
[2] => Array
(
[x] => 2645166.87317
[y] => 1132483.62903
)
[3] => Array
(
[x] => 2645165.87317
[y] => 1132483.62903
)
[4] => Array
(
[x] => 2645165.87317
[y] => 1132484.62903
)
)
)
)
)
)
[wkt] => POLYGON((2645165.87317 1132484.62903, 2645166.87317 1132484.62903, 2645166.87317 1132483.62903, 2645165.87317 1132483.62903, 2645165.87317 1132484.62903)))
Array
(
[_deleted] =>
[ID] => 1
[red] => 58.818
[Comment] =>
[Rate] => 0.000
)
Record 2 [...]
注意:对于读取.shp文件,我使用gasparesganga / php-shapefile库,https://github.com/gasparesganga/php-shapefile
答案 0 :(得分:1)
您可以使用库 Proj4php https://github.com/proj4php/proj4php 重新投影您的坐标。
$proj4 = new Proj4php();
// Your initial projection information from your .prj file
$srcProj = new Proj('LOCAL_CS["CH1903+ / LV95",UNIT["metre",1,AUTHORITY["EPSG","9001"]]]', $proj4);
// WGS84 (for google map)
$dstProj = new Proj('EPSG:4326', $proj4);
// Your original point
$srcPoint = new Point(2645165.87317, 1132484.62903, $srcProj);
// Create your new point in WGS84 projection
$dstPoint = $proj4->transform($dstProj, $srcPoint);