Viac

Prečo sa mesto San Francsico vznáša nad Point Richmondom?

Prečo sa mesto San Francsico vznáša nad Point Richmondom?


Mám tvarový súbor, ktorý má byť mesto San Francisco. Mám to od dobrých ľudí v Transbase. Na ich dlaždiciach sa zdá, že je v súlade so samotným mestom, ale keď som ho nahral do CartoDB, skončil vznášajúc sa asi desať míľ severne od miesta, kde patrí:

Mapu môžete vidieť na CartoDB na http://cdb.io/1Lv2U4o.

Použil som QGIS na zlúčenie sčítacích traktov do jedného mnohouholníka, ale nechápem, ako by to posunulo všetko na sever.

Nie som si ani istý, ako to vyriešiť! Predpokladám, že je to problém s projekciou, však?

Ak ánoVYBERTE ST_srid (the_geom) AS geom_srid, ST_srid (the_geom_webmercator) AS webmerc_srid FROM san_francisco_californiaZískam dve rôzne hodnoty:

geom_srid: 4326 webmerc_srid: 3857

aj keď tie isté dve hodnoty vidím v iných, dokonale funkčných množinách údajov.


Pre tvarový súbor v systéme CRS 3857 (Pseudo Mercator) napíše QGIS projekčný súbor prj s nasledujúcim formátom WKT:

PROJCS ["WGS_84_Pseudo_Mercator", GEOGCS ["GCS_WGS_1984", DATUM ["D_WGS_1984", SPHEROID ["WGS_1984", 6378137,298.257223563]], PRIMEM ["Greenwich", 0], "UN" ["Mercator"], PARAMETER ["central_meridian", 0], PARAMETER ["false_easting", 0], PARAMETER ["false_northing", 0], UNIT ["Meter", 1], PARAMETER ["standard_parallel_1", 0,0] ]

Pri importe tvarového súboru do CartoDB sa poškodia súradnice. To isté sa stane v samotnom QGIS, ak odstránite vlastný a preferovaný projekčný súbor QGIS s príponou qpj. QGIS potom prečíta súbor ako CRS 54004 „World Mercator“, pričom ukazuje rovnaké radenie, aké je vidieť v programe CartoDB. Z tohto dôvodu hádam existuje chyba v GDAL/OGR, ktorá spôsobuje, že buď je napísaný nesprávny WKT, alebo je tento WKT použitý nesprávne.

Riešenie a): Predtým, ako skomprimujete a odovzdáte napr. SF.shp, odstráňte súbor SF.prj, potom skopírujte súbor SF.qpj a premenujte ho na SF.prj.

Riešenie b): Pred odoslaním tvarový súbor zkopírujte na lat/lon (EPSG 4326) v QGIS.

Bonusové riešenie c) ak by ste naozaj chceli opraviť súradnice vo vnútri CartoDB pomocou PostGIS:

INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ​​(954004, 'esri', 54004, ' +proj = merc +lon_0 = 0 +k = 1 +x_0 = 0 +y_0 = 0 +ellps = WGS84 + vztažný bod = WGS84 +jednotky = m +no_defs ',' PROJCS ["World_Mercator", GEOGCS ["GCS_WGS_1984", DATUM ["WGS_1984", SPHEROID ["WGS_1984", 6378137,298.257223563]] Green, "" , UNIT ["Degree", 0,017453292519943295]], PROJECTION ["Mercator_1SP"], PARAMETER ["False_Easting", 0], PARAMETER ["False_Northing", 0], PARAMETER ["Central_Meridian", 0], PARAMETER ["Standard_Parallel , 0], UNIT [„Meter“, 1], ORGÁN [„EPSG“, „54004“]]]); UPDATE mytable SET the_geom = ST_Transform (ST_SetSRID (ST_Transform (the_geom, 954004), 3857), 4326);

(spatial_ref_sys kód z http://spatialreference.org/ref/esri/54004/postgis/)


Znie to ako problém s projekciou.

Môžete skúsiť premietnuť na EPSG: 3857 - WGS84 Web Mercator (pomocná sféra) a zistiť, čo sa stane, keď nahráte svoj ďalší súbor tvarov do CartoDB.


Podľa stránok Transbase sú ich údaje v projekcii 900913. Preto, ako navrhuje @Mista Gill, môžete spustiť nasledujúci dotaz na panel s nástrojmi SQL programu CartoDB a reprojektovať ho:

VYBERTE ST_Transform (ST_SetSRID (the_geom, 900913), 4326) ako the_geom, ST_Transform (ST_SetSRID (the_geom, 900913), 3857) ako the_geom_webmercator, cartodb_id FROM tablename

Ak chcete z tohto vygenerovať množinu údajov bez toho, aby ste museli ponechať aplikovaný dotaz SQL, stačí kliknúť na tlačidlo „vytvoriť množinu údajov z dotazu“, ktoré sa zobrazí pri použití dopytu v editore CartoDB.

Ďalší prístup, ktorý môžete použiť, je jednoducho vygenerovať tabuľku zo stĺpca the_geom (a všetkých ďalších stĺpcov, ktoré by ste mohli chcieť oddeliť čiarkami), pretože the_geom_webmercator a cartodb_id sa generujú automaticky:

VYBERTE ST_Transform (ST_SetSRID (the_geom, 900913), 4326) ako the_geom, other_column_name, other_column_name_2, FROM tablename

Všimnite si, že tento posledný dotaz nebude viditeľný v zobrazení mapy, kým z neho nevytvoríte množinu údajov, pretože negenerujete geometrie Web Mercator potrebné na zobrazenie mapy (uložené v_geom_webmercatore).


Pozri si video: САН ФРАНЦИСКО МЁРТВ? ВСЯ ПРАВДА ПРО СИТУАЦИЮ В ГОРОДЕ