code: func (ps *PointSet) Scan(value interface{}) error {
  	data, ok := value.([]byte)
  	if !ok {
  		return ErrUnsupportedDataType
  	}
  
  	if len(data) == 0 {
  		return nil
  	}
  
  	if len(data) < 6 {
  		return ErrNotWKB
  	}
  
  	// first byte of real WKB data indicates endian and should 1 or 0.
  	if data[0] == 0 || data[0] == 1 {
  		return ps.unmarshalWKB(data)
  	}
  
  	return ps.unmarshalWKB(data[4:])
  }
docs: // Scan implements the sql.Scanner interface allowing
  // line structs to be passed into rows.Scan(...interface{})
  // The column must be of type LineString, Polygon or MultiPoint
  // or an error will be returned. Data must be fetched in WKB format.
  // Will attempt to parse MySQL's SRID+WKB format if obviously no WKB
  // or parsing as WKB fails.
  // If the column is empty (not null) an empty point set will be returned.