ST_AsEncodedPolyline
Prev | 8.9.3. Other Formats | Next

## Name

ST_AsEncodedPolyline — Returns an Encoded Polyline from a LineString geometry.

## Synopsis

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

## Description

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.

Availability: 2.2.0

## Examples

Basic

    	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`@

Use in conjunction with geography linestring and geography segmentize, and put on google maps

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

javascript will look something like this where $ variable you replace with query result

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

## See Also

ST_LineFromEncodedPolyline, ST_Segmentize

Prev | Up | Next
ST_AsHEXEWKB | Home | ST_AsFlatGeobuf