繁体   English   中英

Tilestache-PostgreSQL / PostGIS中存在的坐标与PostGeoJSON提供程序返回的坐标不匹配

[英]Tilestache - Mismatch between the coordinates present in the PostgreSQL/PostGIS and those returned by PostGeoJSON provider

这是我的Tilestache配置的相关内容,

"points-of-interest":
 {
  "provider":
  {
    "class": "TileStache.Goodies.Providers.PostGeoJSON.Provider",
    "kwargs":
    {
       "dsn": "dbname=database user=username host=localhost",
       "query": "SELECT loc_id AS __id__, loc_name, geo2 AS __geometry__ FROM  location",
       "id_column": "__id__", "geometry_column": "__geometry__"
    }
  }
 },

当我访问时http://127.0.0.1:8080/points-of-interest/0/0/0.json - http://127.0.0.1:8080/points-of-interest/0/0/0.json - http://127.0.0.1:8080/points-of-interest/0/0/0.json

我得到回应-

{
  "type": "FeatureCollection",
  "features": [
  {
    "geometry": {
    "type": "Point",
    "coordinates": [
      -0.0008691850758236021,
      0.0002956334943026654
    ]
  },
  "type": "Feature",
  "properties": {
    "loc_name": "TI Blvd, TX"
  },
  "id": 9
  }
]}

上述回应中的座标为-

"coordinates": [-0.0008691850758236021,0.0002956334943026654]  

其中,db表中的实际坐标是-

database=# SELECT loc_id AS __id__, loc_name, ST_AsText(geo2) AS __geometry__ FROM location;
 __id__ |  loc_name   |       __geometry__
 --------+-------------+---------------------------
  9 | TI Blvd, TX | POINT(-96.75724 32.90977)

我在这里想念什么? 为什么我的GeoJSON响应坐标不同?

表说明是

 Table "public.location"
 Column  |          Type          | Modifiers
 ----------+------------------------+-----------
 loc_id   | integer                | not null
 loc_name | character varying(70)  |
 geo2     | geometry(Point,900913) |
 Indexes:
 "location_pkey" PRIMARY KEY, btree (loc_id)

预先感谢大家的帮助。

插入带有SRID的点-4326解决了该问题。

这是插入-

INSERT INTO location(loc_id, loc_name, geo2) VALUES (3, 'Manchester, NH', ST_Transform(ST_GeomFromText('POINT(-71.46259 42.99019)',4326), 900913));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM