名前

ST_AsEncodedPolyline — ラインストリングジオメトリから符号化したポリラインを返します。

概要

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

説明

符号化したポリラインを返します。Google Mapsを使用する場合には非常に便利な書式です。

Availability: 2.2.0

基本

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

ジオグラフィ型のラインストリングとジオグラフィ型のセグメント化したラインストリングを結合してGoogle Mapsに置きます。

-- ボストンからサンフランシスコまでの線を100kmでセグメント化するSQL
        SELECT ST_AsEncodedPolyline(
                ST_Segmentize(
                        ST_GeogFromText('LINESTRING(-71.0519 42.4935,-122.4483 37.64)'),
                                100000)::geometry) As encodedFlightPath;

JavaScriptコードは、クエリの結果を$変数と置き換えると次のようになります。

<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