[PostgreSQL] CREATE TABLE 예제

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

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

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_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 코드로 얻을 수 있다고 합시다.

var qs = getQueryStringObject();
var x = qs.x; // 925641
var y = qs.y; // 1666020
var l = qs.level; // 10

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

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;
}