[PostgreSQL] CREATE TABLE 예제

PostgreSQL에서 geometry 타입을 갖는 Table을 생성하고자 할때, 사용한 SQL 문에 대해 정리해 봅니다. 아래와 같은 형태의 테이블 2개에 대한 생성인데요.

위 형태의 테이블 2개에 대한 CREATE 문은 아래와 같습니다. 실제 용도는 네트워크 DB에 대한 Node, Link 관련 데이터를 저장하는 Table 생성에 대한 SQL입니다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE public.ecl_network_link
(
networkid uuid PRIMARY KEY,
facility_layer character varying(30),
snode_id uuid,
snode_layer character varying(30),
enode_id uuid,
enode_layer character varying(30),
the_geom geometry(MultiLineString)
);
ALTER TABLE public.ecl_network_link
OWNER TO postgres;
CREATE INDEX ecl_network_link_geom_idx
ON public.ecl_network_link
USING gist
(the_geom);
CREATE TABLE public.ecl_network_link ( networkid uuid PRIMARY KEY, facility_layer character varying(30), snode_id uuid, snode_layer character varying(30), enode_id uuid, enode_layer character varying(30), the_geom geometry(MultiLineString) ); ALTER TABLE public.ecl_network_link OWNER TO postgres; CREATE INDEX ecl_network_link_geom_idx ON public.ecl_network_link USING gist (the_geom);
CREATE TABLE public.ecl_network_link
(
  networkid uuid PRIMARY KEY,  
  facility_layer character varying(30),
  snode_id uuid,
  snode_layer character varying(30),
  enode_id uuid,
  enode_layer character varying(30),
  the_geom geometry(MultiLineString)
);

ALTER TABLE public.ecl_network_link
  OWNER TO postgres;

CREATE INDEX ecl_network_link_geom_idx
  ON public.ecl_network_link
  USING gist
  (the_geom);
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE public.ecl_network_node
(
networkid uuid PRIMARY KEY,
facility_layer character varying(30),
the_geom geometry(Point)
);
ALTER TABLE public.ecl_network_node
OWNER TO postgres;
CREATE INDEX ecl_network_node_geom_idx
ON public.ecl_network_node
USING gist
(the_geom);
CREATE TABLE public.ecl_network_node ( networkid uuid PRIMARY KEY, facility_layer character varying(30), the_geom geometry(Point) ); ALTER TABLE public.ecl_network_node OWNER TO postgres; CREATE INDEX ecl_network_node_geom_idx ON public.ecl_network_node USING gist (the_geom);
CREATE TABLE public.ecl_network_node
(
  networkid uuid PRIMARY KEY,  
  facility_layer character varying(30),
  the_geom geometry(Point)
);

ALTER TABLE public.ecl_network_node
  OWNER TO postgres;

CREATE INDEX ecl_network_node_geom_idx
  ON public.ecl_network_node
  USING gist
  (the_geom);

Javascript로 URL의 QueryString을 파싱하고 값 얻기

만약 웹브라우저에서 입력한 url이 다음과 같다고 가정하면..

http://localhost/map.html?x=925641&y=1666020&level=10

위의 url에서 QueryString으로 지정된 파라메터를 다음과 같은 JavaScript 코드로 얻을 수 있다고 합시다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var qs = getQueryStringObject();
var x = qs.x; // 925641
var y = qs.y; // 1666020
var l = qs.level; // 10
var qs = getQueryStringObject(); var x = qs.x; // 925641 var y = qs.y; // 1666020 var l = qs.level; // 10
var qs = getQueryStringObject();
var x = qs.x; // 925641
var y = qs.y; // 1666020
var l = qs.level; // 10

이때 getQueryStringObject 함수는 다음과 같습니다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function getQueryStringObject() {
var a = window.location.search.substr(1).split('&');
if (a == "") return {};
var b = {};
for (var i = 0; i < a.length; ++i) {
var p = a[i].split('=', 2);
if (p.length == 1)
b[p[0]] = "";
else
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
}
return b;
}
function getQueryStringObject() { var a = window.location.search.substr(1).split('&'); if (a == "") return {}; var b = {}; for (var i = 0; i < a.length; ++i) { var p = a[i].split('=', 2); if (p.length == 1) b[p[0]] = ""; else b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); } return b; }
function getQueryStringObject() {
    var a = window.location.search.substr(1).split('&');
    if (a == "") return {};
    var b = {};
    for (var i = 0; i < a.length; ++i) {
        var p = a[i].split('=', 2);
        if (p.length == 1)
            b[p[0]] = "";
        else
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
    }
    return b;
}