Name

ST_AsEncodedPolyline — 라인스트링 도형으로부터 인코딩된 폴리라인을 반환합니다.

Synopsis

text ST_AsEncodedPolyline(geometry geom, integer precision=5);

설명

Returns the geometry as an Encoded Polyline. This format is used by Google Maps with precision=5 and by Open Source Routing Machine with precision=5 and 6.

Optional precision specifies how many decimal places will be preserved in Encoded Polyline. Value should be the same on encoding and decoding, or coordinates will be incorrect.

2.2.0 버전부터 사용할 수 있습니다.

예시

기본

SELECT ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));
        --result--
        |_p~iF~ps|U_ulLnnqC_mqNvxq`@
        

지리형 라인스트링 및 지리형 분절화(segmentize)와 결합해서 사용하고, 구글 지도에 올립니다.

-- the SQL for Boston to San Francisco, segments every 100 KM
        SELECT ST_AsEncodedPolyline(
                ST_Segmentize(
                        ST_GeogFromText('LINESTRING(-71.0519 42.4935,-122.4483 37.64)'),
                                100000)::geometry) As encodedFlightPath;

사용자가 $ 변수를 쿼리 결과로 대체한 자바스크립트는 다음과 같이 보일 것입니다.

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry"
></script>
<script type="text/javascript">
         flightPath = new google.maps.Polyline({
                        path:  google.maps.geometry.encoding.decodePath("$encodedFlightPath"),
                        map: map,
                        strokeColor: '#0000CC',
                        strokeOpacity: 1.0,
                        strokeWeight: 4
                });
</script>
        

참고

ST_LineFromEncodedPolyline, ST_Segmentize